| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736 |
- <?php
- /*
- Desarrollador: Ing. Jean Jairo Benitez Meza
- Ultima Modificación: 29/02/2023
- Módulo: Gestión de Inventario y/o Stock
- */
- namespace App\Http\Controllers;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\ResourcesController;
- use App\Http\Controllers\ResponseController;
- use App\Http\Controllers\EncryptionController;
- use App\Http\Controllers\DocumentManagementController;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Validator;
- use App\Http\Controllers\FunctionsController;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Http\File;
- use Illuminate\Support\Carbon;
- use PhpOffice\PhpSpreadsheet\Spreadsheet;
- use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
- use Dompdf\Dompdf;
- use Illuminate\Database\Query\JoinClause;
- class StockController extends Controller
- {
- private $responseController;
- private $encController;
- private $resourcesController;
- private $documentManagementController;
- private $functionsController;
- private $processManagementController;
- public function __construct(){
- $this->responseController = new ResponseController();
- $this->encController = new EncryptionController();
- $this->resourcesController = new ResourcesController();
- $this->documentManagementController = new DocumentManagementController();
- $this->functionsController = new FunctionsController();
- $this->processManagementController = new ProcessManagementController();
- }
- // Crear Artículo en Stock
- public function createArtitleWithoutOrder(Request $request) {
- $validator = Validator::make($request->all(), [
- 'ARTICULO' => 'required',
- 'MODELO' => 'required',
- 'CODIGO_MODELO' => 'required',
- 'FAMILIA' => 'required',
- 'SUBFAMILIA' => 'required',
- 'UNIDAD' => 'required',
- 'CODIGO_BARRAS' => 'required',
- 'CANTIDAD' => 'required',
- 'STOCK_MINIMO' => 'required',
- 'STOCK_MAXIMO' => 'required',
- 'REPARACION' => 'required|boolean',
- 'CONSUMIBLE' => 'required|boolean',
- 'PELIGROSO' => 'required|boolean',
- // 'FECHA_VENCIMIENTO' => '',
- // 'PROVEEDOR' => 'required',
- 'IMAGEN' => 'required',
- 'NUMERO_LINEA' => 'required',
- 'USUARIO' => 'required',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_STOCK_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $user = $this->encController->decrypt($requestData['USUARIO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG001: Ocurrió un error al obtener el usuario.", $th->getMessage(), 500);
- }
- try {
- $validateFamily = DB::table('S002V01TFAMI')
- ->where('FAMI_COFA','=', $requestData['FAMILIA'])
- ->where('FAMI_NULI','=', $requestData['NUMERO_LINEA'])
- ->where('FAMI_ESTA','=','Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG002: Ocurrió un error al validar la familia.", $th->getMessage(), 500);
- }
- if (!$validateFamily) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG003: La familia no existe.", [], 500);
- }
- try {
- $validateSubfamily = DB::table('S002V01TSUBF')
- ->where('SUBF_COSU','=', $requestData['SUBFAMILIA'])
- ->where('SUBF_NULI','=', $requestData['NUMERO_LINEA'])
- ->where('SUBF_ESTA','=','Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG004: Ocurrió un error al validar la subfamilia.", $th->getMessage(), 500);
- }
- if (!$validateSubfamily) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG005: La subfamilia no existe.", [], 500);
- }
-
- try {
- $validateUnit = DB::table('S002V01TUNID')
- ->where('UNID_IDUN','=', $requestData['UNIDAD'])
- ->where('UNID_NULI','=', $requestData['NUMERO_LINEA'])
- ->where('UNID_ESTA','=','Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG006: Ocurrió un error al validar la unidad.", $th->getMessage(), 500);
- }
- if (!$validateUnit) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG007: La unidad no existe.", [], 500);
- }
- $requestData['PROVEEDOR'] = $requestData['PROVEEDOR'] === '' ? null : $requestData['PROVEEDOR'];
- if (!is_null($requestData['PROVEEDOR'])) {
- try {
- $validateUnit = DB::table('S002V01TPROV')
- ->where('PROV_NUPR','=', $requestData['PROVEEDOR'])
- ->where('PROV_NULI','=', $requestData['NUMERO_LINEA'])
- ->where('PROV_ESTA','=','Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG008: Ocurrió un error al validar el proveedor.", $th->getMessage(), 500);
- }
- if (!$validateUnit) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG009: El proveedor no existe.", [], 500);
- }
- }
- $arrCodeImages = array();
- foreach ($requestData['IMAGEN'] as $key => $encIdFile) {
- $idFile = $this->encController->decrypt($encIdFile);
- $tempFile = DB::table('S002V01TARTE')->where([
- ['ARTE_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARTE_IDAR', '=', $idFile],
- ])->first();
- if(is_null($tempFile)){
- return $this->responseController->makeResponse(true, 'ERR_ARTITLE_REG006: El archivo consultado no está registrado', [], 404);
- }else if($tempFile->ARTE_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'ERR_ARTITLE_REG007: El archivo consultado está eliminado', [], 404);
- }
- $fileResponse = $this->documentManagementController->moveFinalFile(
- intval($requestData['NUMERO_LINEA']),
- 'GIST',
- 'FO',
- $tempFile,
- $user,
- );
- if(!$fileResponse[0]){
- return $this->responseController->makeResponse(true, 'ERR_ARTITLE_REG008: '.$fileResponse[1], [], 400);
- }
- $arrCodeImages[] = $this->encController->encrypt($fileResponse[1]);
- }
- $jsonImages = json_encode($arrCodeImages);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateRegister = DB::table('S002V01TSTAR')->insert([
- // 'STAR_CODI' => $requestData['CODIGO_STOCK'],
- 'STAR_ARTI' => $requestData['ARTICULO'],
- 'STAR_MODE' => $requestData['MODELO'],
- 'STAR_COMO' => $requestData['CODIGO_MODELO'],
- 'STAR_IDFA' => $requestData['FAMILIA'],
- 'STAR_IDSU' => $requestData['SUBFAMILIA'],
- 'STAR_NUPR' => $requestData['PROVEEDOR'],
- 'STAR_IDUN' => $requestData['UNIDAD'],
- 'STAR_COBA' => $requestData['CODIGO_BARRAS'],
- 'STAR_CANT' => $requestData['CANTIDAD'],
- 'STAR_STMI' => $requestData['STOCK_MINIMO'],
- 'STAR_STMA' => $requestData['STOCK_MAXIMO'],
- 'STAR_REPA' => $requestData['REPARACION'],
- 'STAR_CONS' => $requestData['CONSUMIBLE'],
- 'STAR_PELI' => $requestData['PELIGROSO'],
- 'STAR_FEVE' => $requestData['FECHA_VENCIMIENTO'],
- 'STAR_IMAG' => $jsonImages,
- 'STAR_TIAD' => 'Sin Pedido',
- 'STAR_NULI' => $requestData['NUMERO_LINEA'],
- 'STAR_USRE' => $user,
- 'STAR_FERE' => $currentDate,
- 'STAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG011: Ocurrió un error al registrar el artículo.", $th->getMessage(), 500);
- }
- if (!$validateRegister) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_STOCK_REG012: No se pudo registrar el artículo.", [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "EXITO: Registro Exitoso");
- }
- // FUNCIÓN GESTIÓN DE ALMACENES
- public function getWarehouse( $user, $line ) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
-
- try {
- $arrWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $line)
- ->get([
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'ALMA_NORE AS NOMBRE_RESPONSABLE',
- 'ALMA_APRE AS APELLIDO_PATERNO_RESPONSABLE',
- 'ALMA_AMRE AS APELLIDO_MATERNO_RESPONSABLE',
- 'ALMA_COR1 AS CORREO1',
- 'ALMA_COR2 AS CORREO2',
- 'ALMA_LAD1 AS LADA1',
- 'ALMA_TEL1 AS TELEFONO1',
- 'ALMA_LAD2 AS LADA2',
- 'ALMA_TEL2 AS TELEFONO2',
- 'ALMA_CALL AS CALLE',
- 'ALMA_NUEX AS NUMERO_EXTERIOR',
- 'ALMA_NUIN AS NUMERO_INTERIOR',
- 'ALMA_COPO AS CODIGO_POSTAL',
- 'ALMA_COLO AS COLONIA',
- 'ALMA_LOCA AS LOCALIDAD',
- 'ALMA_MUNI AS MUNICIPIO',
- 'ALMA_ENTI AS ENTIDAD_FEDERATIVA',
- 'ALMA_PAIS AS PAIS',
- 'ALMA_ESTA AS ESTADO',
- 'ALMA_USRE AS USUARIO_REGISTRA',
- 'ALMA_FERE AS FECHA_REGISTRA',
- 'ALMA_USMO AS USUARIO_MODIFICA',
- 'ALMA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrWarehouse = json_decode( json_encode($arrWarehouse), true );
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET001: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- foreach ($arrWarehouse as $keyWarehouse => $warehouse) {
- $arrResponseGetAddress = $this->resourcesController->getAddress(
- $warehouse['CODIGO_POSTAL'],
- $warehouse['COLONIA'],
- $warehouse['MUNICIPIO'],
- $warehouse['LOCALIDAD'],
- $warehouse['ENTIDAD_FEDERATIVA'],
- $warehouse['PAIS'],
- $line
- );
- if ($arrResponseGetAddress['error']) {
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GET002: '.$arrResponseGetAddress['msg'], $arrResponseGetAddress['response'], 401);
- }
- $warehouse['CODIGO_POSTAL'] = $arrResponseGetAddress['response']['CODIGO_POSTAL'];
- $warehouse['COLONIA'] = $arrResponseGetAddress['response']['COLONIA'];
- $warehouse['MUNICIPIO'] = $arrResponseGetAddress['response']['MUNICIPIO'];
- $warehouse['LOCALIDAD'] = $arrResponseGetAddress['response']['LOCALIDAD'];
- $warehouse['ENTIDAD_FEDERATIVA'] = $arrResponseGetAddress['response']['ENTIDAD_FEDERATIVA'];
- $warehouse['PAIS'] = $arrResponseGetAddress['response']['PAIS'];
- try {
- $countStock = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_COAL', '=', $warehouse['CODIGO_ALMACEN'])
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET003: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- $warehouse['CANTIDAD_STOCK'] = $countStock;
- $arrWarehouse[$keyWarehouse] = $warehouse;
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrWarehouse, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrWarehouse = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWarehouse);
- }
- public function getWarehouseById( $idWarehouse, $user, $line ) {
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
-
- try {
- $arrWarehouse = (array) DB::table('S002V01TALMA')
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->where('ALMA_NULI', '=', $line)
- ->first([
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'ALMA_NORE AS NOMBRE_RESPONSABLE',
- 'ALMA_APRE AS APELLIDO_PATERNO_RESPONSABLE',
- 'ALMA_AMRE AS APELLIDO_MATERNO_RESPONSABLE',
- 'ALMA_COR1 AS CORREO1',
- 'ALMA_COR2 AS CORREO2',
- 'ALMA_LAD1 AS LADA1',
- 'ALMA_TEL1 AS TELEFONO1',
- 'ALMA_LAD2 AS LADA2',
- 'ALMA_TEL2 AS TELEFONO2',
- 'ALMA_CALL AS CALLE',
- 'ALMA_NUEX AS NUMERO_EXTERIOR',
- 'ALMA_NUIN AS NUMERO_INTERIOR',
- 'ALMA_COPO AS CODIGO_POSTAL',
- 'ALMA_COLO AS COLONIA',
- 'ALMA_LOCA AS LOCALIDAD',
- 'ALMA_MUNI AS MUNICIPIO',
- 'ALMA_ENTI AS ENTIDAD_FEDERATIVA',
- 'ALMA_PAIS AS PAIS',
- 'ALMA_ESTA AS ESTADO',
- 'ALMA_USRE AS USUARIO_REGISTRA',
- 'ALMA_FERE AS FECHA_REGISTRA',
- 'ALMA_USMO AS USUARIO_MODIFICA',
- 'ALMA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrWarehouse = json_decode( json_encode($arrWarehouse), true );
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GETBY001: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- if (!empty($arrWarehouse)) {
- $arrResponseGetAddress = $this->resourcesController->getAddress(
- $arrWarehouse['CODIGO_POSTAL'],
- $arrWarehouse['COLONIA'],
- $arrWarehouse['MUNICIPIO'],
- $arrWarehouse['LOCALIDAD'],
- $arrWarehouse['ENTIDAD_FEDERATIVA'],
- $arrWarehouse['PAIS'],
- $line
- );
- if ($arrResponseGetAddress['error']) {
- return $this->responseController->makeResponse(true, 'ERR_arrWarehouse_GETBY002: '.$arrResponseGetAddress['msg'], $arrResponseGetAddress['response'], 406);
- }
-
- $arrWarehouse['CODIGO_POSTAL'] = $arrResponseGetAddress['response']['CODIGO_POSTAL'];
- $arrWarehouse['COLONIA'] = $arrResponseGetAddress['response']['COLONIA'];
- $arrWarehouse['MUNICIPIO'] = $arrResponseGetAddress['response']['MUNICIPIO'];
- $arrWarehouse['LOCALIDAD'] = $arrResponseGetAddress['response']['LOCALIDAD'];
- $arrWarehouse['ENTIDAD_FEDERATIVA'] = $arrResponseGetAddress['response']['ENTIDAD_FEDERATIVA'];
- $arrWarehouse['PAIS'] = $arrResponseGetAddress['response']['PAIS'];
-
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWarehouse);
- }
- public function getWarehouseActives($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
-
- try {
- $arrWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $line)
- ->where('ALMA_ESTA', '=', 'Activo')
- ->get([
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'ALMA_NORE AS NOMBRE_RESPONSABLE',
- 'ALMA_APRE AS APELLIDO_PATERNO_RESPONSABLE',
- 'ALMA_AMRE AS APELLIDO_MATERNO_RESPONSABLE',
- 'ALMA_COR1 AS CORREO1',
- 'ALMA_LAD1 AS LADA1',
- 'ALMA_TEL1 AS TELEFONO1',
- ]);
- $arrWarehouse = json_decode( json_encode($arrWarehouse), true );
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET001: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- foreach ($arrWarehouse as $key => $warehouse) {
-
- try {
- $countStock = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_COAL', '=', $warehouse['CODIGO_ALMACEN'])
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET003: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- $warehouse['CODIGO_ALMACEN'] = $this->encController->encrypt($warehouse['CODIGO_ALMACEN'] );
- $warehouse['CANTIDAD_STOCK'] = $countStock;
- $arrWarehouse[$key] = $warehouse;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWarehouse);
- }
- public function createWarehouse( Request $request ) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'NOMBRE_ALMACEN' => 'required|string',
- 'NOMBRE_RESPONSABLE' => 'required|string',
- 'APELLIDO_PATERNO_RESPONSABLE' => 'required|string',
- 'APELLIDO_MATERNO_RESPONSABLE' => 'nullable|string',
- 'CORREO1' => 'required|string',
- 'CORREO2' => 'nullable|string',
- 'LADA1' => 'required|string',
- 'TELEFONO1' => 'required|string',
- 'LADA2' => 'nullable|string',
- 'TELEFONO2' => 'nullable|string',
- 'CALLE' => 'required|string',
- 'NUMERO_EXTERIOR' => 'required|string',
- 'NUMERO_INTERIOR' => 'nullable|string',
- 'CODIGO_POSTAL' => 'required|string',
- 'COLONIA' => 'required|string',
- 'LOCALIDAD' => 'nullable|string',
- 'MUNICIPIO' => 'required|string',
- 'ENTIDAD_FEDERATIVA' => 'required|string',
- 'PAIS' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
-
- // Se valida y se obtiene el usuario
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_REG001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- // Se vallidan los campos de dirección
- $arrResponseCheckAddress = $this->resourcesController->validateAddress(
- $requestData['CODIGO_POSTAL'],
- $requestData['COLONIA'],
- $requestData['MUNICIPIO'],
- $requestData['LOCALIDAD'],
- $requestData['ENTIDAD_FEDERATIVA'],
- $requestData['PAIS'],
- $requestData['NUMERO_LINEA'],
- );
- if ($arrResponseCheckAddress['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_REG002: '.$arrResponseCheckAddress['msg'], $arrResponseCheckAddress['response'], 401);
- }
-
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TALMA')->insert([
- 'ALMA_NULI' => $requestData['NUMERO_LINEA'],
- 'ALMA_COAL' => $requestData['CODIGO_ALMACEN'],
- 'ALMA_NOAL' => $requestData['NOMBRE_ALMACEN'],
- 'ALMA_NORE' => $requestData['NOMBRE_RESPONSABLE'],
- 'ALMA_APRE' => $requestData['APELLIDO_PATERNO_RESPONSABLE'],
- 'ALMA_AMRE' => $requestData['APELLIDO_MATERNO_RESPONSABLE'],
- 'ALMA_COR1' => $requestData['CORREO1'],
- 'ALMA_COR2' => $requestData['CORREO2'],
- 'ALMA_LAD1' => $requestData['LADA1'],
- 'ALMA_TEL1' => $requestData['TELEFONO1'],
- 'ALMA_LAD2' => $requestData['LADA2'],
- 'ALMA_TEL2' => $requestData['TELEFONO2'],
- 'ALMA_CALL' => $requestData['CALLE'],
- 'ALMA_NUEX' => $requestData['NUMERO_EXTERIOR'],
- 'ALMA_NUIN' => $requestData['NUMERO_INTERIOR'],
- 'ALMA_COPO' => $requestData['CODIGO_POSTAL'],
- 'ALMA_COLO' => $requestData['COLONIA'],
- 'ALMA_LOCA' => $requestData['LOCALIDAD'],
- 'ALMA_MUNI' => $requestData['MUNICIPIO'],
- 'ALMA_ENTI' => $requestData['ENTIDAD_FEDERATIVA'],
- 'ALMA_PAIS' => $requestData['PAIS'],
- 'ALMA_USRE' => $user,
- 'ALMA_FERE' => $currentDate,
- 'ALMA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_REG003: Ocurrió un error al insertar el registro del almacen.",
- $th->getMessage(),
- 500
- );
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_REG004: No se pudo insertar el registro del almacen.",
- [],
- 500
- );
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function updateWarehouse( Request $request, $idWarehouse ) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'NOMBRE_ALMACEN' => 'required|string',
- 'NOMBRE_RESPONSABLE' => 'required|string',
- 'APELLIDO_PATERNO_RESPONSABLE' => 'required|string',
- 'APELLIDO_MATERNO_RESPONSABLE' => 'nullable|string',
- 'CORREO1' => 'required|string',
- 'CORREO2' => 'nullable|string',
- 'LADA1' => 'required|string',
- 'TELEFONO1' => 'required|string',
- 'LADA2' => 'nullable|string',
- 'TELEFONO2' => 'nullable|string',
- 'CALLE' => 'required|string',
- 'NUMERO_EXTERIOR' => 'required|string',
- 'NUMERO_INTERIOR' => 'nullable|string',
- 'CODIGO_POSTAL' => 'required|string',
- 'COLONIA' => 'required|string',
- 'LOCALIDAD' => 'nullable|string',
- 'MUNICIPIO' => 'required|string',
- 'ENTIDAD_FEDERATIVA' => 'required|string',
- 'PAIS' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_UPD000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "ERR_WAREHOUSE_UPD001: Ocurrió un error al desencriptar el ID del almacen.". $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_UPD002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $arrResponseCheckAddress = $this->resourcesController->validateAddress(
- $requestData['CODIGO_POSTAL'],
- $requestData['COLONIA'],
- $requestData['MUNICIPIO'],
- $requestData['LOCALIDAD'],
- $requestData['ENTIDAD_FEDERATIVA'],
- $requestData['PAIS'],
- $requestData['NUMERO_LINEA'],
- );
- if ($arrResponseCheckAddress['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_UPD003: '.$arrResponseCheckAddress['msg'], $arrResponseCheckAddress['response'], 401);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->update([
- 'ALMA_COAL' => $requestData['CODIGO_ALMACEN'],
- 'ALMA_NOAL' => $requestData['NOMBRE_ALMACEN'],
- 'ALMA_NORE' => $requestData['NOMBRE_RESPONSABLE'],
- 'ALMA_APRE' => $requestData['APELLIDO_PATERNO_RESPONSABLE'],
- 'ALMA_AMRE' => $requestData['APELLIDO_MATERNO_RESPONSABLE'],
- 'ALMA_COR1' => $requestData['CORREO1'],
- 'ALMA_COR2' => $requestData['CORREO2'],
- 'ALMA_LAD1' => $requestData['LADA1'],
- 'ALMA_TEL1' => $requestData['TELEFONO1'],
- 'ALMA_LAD2' => $requestData['LADA2'],
- 'ALMA_TEL2' => $requestData['TELEFONO2'],
- 'ALMA_CALL' => $requestData['CALLE'],
- 'ALMA_NUEX' => $requestData['NUMERO_EXTERIOR'],
- 'ALMA_NUIN' => $requestData['NUMERO_INTERIOR'],
- 'ALMA_COPO' => $requestData['CODIGO_POSTAL'],
- 'ALMA_COLO' => $requestData['COLONIA'],
- 'ALMA_LOCA' => $requestData['LOCALIDAD'],
- 'ALMA_MUNI' => $requestData['MUNICIPIO'],
- 'ALMA_ENTI' => $requestData['ENTIDAD_FEDERATIVA'],
- 'ALMA_PAIS' => $requestData['PAIS'],
- 'ALMA_USMO' => $user,
- 'ALMA_FEMO' => $currentDate,
- 'ALMA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_UPD004: Ocurrió un error al insertar el registro del almacen.",
- $th->getMessage(),
- 500
- );
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_UPD005: No se pudo insertar el registro del almacen.",
- [],
- 500
- );
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function deleteWarehouse( Request $request, $idWarehouse ) {
- $validator = Validator::make($request->all(), [
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_DEL000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL001: Ocurrió un error al desencriptar el nivel.', $th->getMessage(), 500);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExists = DB::table('S002V01TALMA')
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->where('ALMA_ESTA', '=', 'Activo')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL003: Ocurrió un error al obtener la información del área.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL004: El almacen no existe.', [], 406);
- }
- try {
- $validateExists = DB::table('S002V01TUBAR')
- ->where('UBAR_COAL', '=', $idWarehouse)
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL005: Ocurrió un error al obtener las ubicaciones de los artículos.', $th->getMessage(), 500);
- }
- if($validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL006: No se puede eliminar debido a que existen artículos ubicados en el almacen.', [], 406);
- }
- try {
- $countArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $idWarehouse)
- ->where('AREA_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL007: Ocurrió un error al obtener la información del área.', $th->getMessage(), 500);
- }
- if ($countArea > 0) {
- DB::rollBack();
- $quantity = $countArea === 1 ? 'existe 1 área activa' : 'existen'.$countArea.' áreas activas';
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL008: No se puede elminar debido a que '.$quantity.'.', [], 406);
- }
- try {
- $countLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $idWarehouse)
- ->where('NIVE_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL009: Ocurrió un error al obtener las zonas.', $th->getMessage(), 500);
- }
- if ($countLevel > 0) {
- DB::rollBack();
- $quantity = $countLevel === 1 ? 'existe 1 nivel activo' : 'existen '.$countLevel.' niveles activos';
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL010: No se puede eliminar debido a que '.$quantity.'.', [], 406);
- }
-
- try {
- $countZones = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $idWarehouse)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL011: Ocurrió un error al obtener las zonas.', $th->getMessage(), 500);
- }
- if ($countZones > 0) {
- DB::rollBack();
- $quantity = $countZones === 1 ? 'existe 1 zona activa' : 'existen '.$countZones.' zonas activas';
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL012: No se puede eliminar debido a que '.$quantity.'.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TALMA')
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'ALMA_ESTA' => 'Eliminado',
- 'ALMA_USMO' => $user,
- 'ALMA_FEMO' => $currentDate,
- 'ALMA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL013: Ocurrió un error al eliminar el área.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_DEL014: No se pudo eliminar el área.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
- }
- public function getAreaByWarehouse($idWarehouse, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getArea = DB::table('S002V01TAREA')
- ->where('AREA_COAL', '=', $idWarehouse)
- ->where('AREA_NULI', '=', $line)
- ->get([
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'AREA_COME AS COMENTARIOS',
- 'AREA_ESTA AS ESTADO',
- 'AREA_USRE AS USUARIO_REGISTRA',
- 'AREA_FERE AS FECHA_REGISTRA',
- 'AREA_USMO AS USUARIO_MODIFICA',
- 'AREA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrArea = json_decode(json_encode($getArea), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY002: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- foreach ($arrArea as $key => $value) {
- try {
- $countStock = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_COAL', '=', $idWarehouse)
- ->where('UBAR_COAR', '=', $value['CODIGO_AREA'])
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET003: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- $value['CANTIDAD_STOCK'] = $countStock;
- $arrArea[$key] = $value;
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrArea, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrArea = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrArea);
- }
- public function getAreaById($idArea, $user, $line) {
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getArea = (array) DB::table('S002V01TAREA')
- ->where('AREA_COAR', '=', $idArea)
- ->where('AREA_NULI', '=', $line)
- ->first([
- 'AREA_NOAR AS NOMBRE_AREA',
- 'AREA_COME AS COMENTARIOS',
- 'AREA_ESTA AS ESTADO',
- 'AREA_USRE AS USUARIO_REGISTRA',
- 'AREA_FERE AS FECHA_REGISTRA',
- 'AREA_USMO AS USUARIO_MODIFICA',
- 'AREA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrArea = json_decode(json_encode($getArea), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBY002: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrArea);
- }
- public function getAreaByWarehouseActives($idWarehouse, $user, $line) {
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBYACTIVE000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBYACTIVE001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $line)
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBYACTIVE002: Ocurrió un error al obtener el almacen.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBYACTIVE003: El almacen no existe.', [], 401);
- }
- try {
- $getArea = DB::table('S002V01TAREA')
- ->where('AREA_COAL', '=', $idWarehouse)
- ->where('AREA_NULI', '=', $line)
- ->where('AREA_ESTA', '=', 'Activo')
- ->get([
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'AREA_COME AS COMENTARIOS',
- ]);
- $arrArea = json_decode(json_encode($getArea), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_GETBYACTIVE004: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrArea);
- }
- public function registerArea(Request $request) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'CODIGO_AREA' => 'required|string',
- 'NOMBRE_AREA' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_AREA_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG002: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG003: El almacen no existe.', [], 406);
- }
- try {
- $validateExistCode = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG004: Ocurrió un error al verificar el código del área.', $th->getMessage(), 500);
- }
- if ($validateExistCode) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG005: El código del área ya se encuentra registrado.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TAREA')->insert([
- 'AREA_COAL' => $requestData['CODIGO_ALMACEN'],
- 'AREA_COAR' => $requestData['CODIGO_AREA'],
- 'AREA_NOAR' => $requestData['NOMBRE_AREA'],
- 'AREA_COME' => $requestData['COMENTARIOS'],
- 'AREA_NULI' => $requestData['NUMERO_LINEA'],
- 'AREA_USRE' => $user,
- 'AREA_FERE' => $currentDate,
- 'AREA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG006: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_REG007: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function updateArea(Request $request, $idArea) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'NOMBRE_AREA' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_AREA_UPD000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD001:'.$arrResponseCheckUser['msg'], $arrResponseCheckUser['response'], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD002: Ocurrió un error al desencriptar el área.', $th->getMessage(), 500);
- }
- try {
- $validateExistArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAR', '=', $idArea)
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD003: Ocurrió un error al verificar el código del área.', $th->getMessage(), 500);
- }
- if (!$validateExistArea) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD004: El área no existe.', [], 406);
- }
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD005: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD006: El almacen no existe.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('AREA_COAR', '=', $idArea)
- ->update([
- 'AREA_NOAR' => $requestData['NOMBRE_AREA'],
- 'AREA_COME' => $requestData['COMENTARIOS'],
- 'AREA_USMO' => $user,
- 'AREA_FEMO' => $currentDate,
- 'AREA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD009: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_UPD010: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function deleteArea(Request $request, $idArea) {
- $validator = Validator::make($request->all(), [
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_AREA_DEL000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL001: Ocurrió un error al desencriptar el nivel.', $th->getMessage(), 500);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $arrArea = (array) DB::table('S002V01TAREA')
- ->where('AREA_COAR', '=', $idArea)
- ->where('AREA_ESTA', '=', 'Activo')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->first([
- 'AREA_COAL',
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL003: Ocurrió un error al obtener la información del área.', $th->getMessage(), 500);
- }
- if (empty($arrArea)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL004: El área no existe.', [], 406);
- }
- try {
- $validateExists = DB::table('S002V01TUBAR')
- ->where('UBAR_COAL', '=', $arrArea['AREA_COAL'])
- ->where('UBAR_COZO', '=', $idArea)
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL005: Ocurrió un error al obtener las ubicaciones de los artículos.', $th->getMessage(), 500);
- }
- if($validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_AREA_DEL006: No se puede eliminar debido a que existen artículos ubicados en el área.', [], 406);
- }
- try {
- $countLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $arrArea['AREA_COAL'])
- ->where('NIVE_COAR', '=', $idArea)
- ->where('NIVE_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL007: Ocurrió un error al obtener las zonas.', $th->getMessage(), 500);
- }
- if ($countLevel > 0) {
- DB::rollBack();
- $quantity = $countLevel === 1 ? 'existe 1 nivel activo' : 'existen '.$countLevel.' niveles activos';
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL008: No se puede eliminar debido a que '.$quantity.'.', [], 406);
- }
- try {
- $countZones = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $arrArea['AREA_COAL'])
- ->where('ZONA_COAR', '=', $idArea)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL009: Ocurrió un error al obtener las zonas.', $th->getMessage(), 500);
- }
- if ($countZones > 0) {
- DB::rollBack();
- $quantity = $countZones === 1 ? 'existe 1 zona activa' : 'existen '.$countZones.' zonas activas';
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL010: No se puede eliminar debido a que '.$quantity.'.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TAREA')
- ->where('AREA_COAR', '=', $idArea)
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'AREA_ESTA' => 'Eliminado',
- 'AREA_USMO' => $user,
- 'AREA_FEMO' => $currentDate,
- 'AREA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL011: Ocurrió un error al eliminar el área.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL012: No se pudo eliminar el área.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
- }
- public function getLevelByAreaWarehouse($idWarehouse, $idArea, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY001: Ocurrió un error al desencriptar el ID del área', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_COAL', '=', $idWarehouse)
- ->where('NIVE_COAR', '=', $idArea)
- ->where('NIVE_NULI', '=', $line)
- ->get([
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'NIVE_COME AS COMENTARIOS',
- 'NIVE_ESTA AS ESTADO',
- 'NIVE_USRE AS USUARIO_REGISTRA',
- 'NIVE_FERE AS FECHA_REGISTRA',
- 'NIVE_USMO AS USUARIO_MODIFICA',
- 'NIVE_FEMO AS FECHA_MODIFICA',
- ]);
- $arrLevel = json_decode(json_encode($getLevel), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY003: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- foreach ($arrLevel as $key => $value) {
- try {
- $countStock = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_COAL', '=', $idWarehouse)
- ->where('UBAR_COAR', '=', $idArea)
- ->where('UBAR_CONI', '=', $value['CODIGO_NIVEL'])
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET003: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- $value['CANTIDAD_STOCK'] = $countStock;
- $arrLevel[$key] = $value;
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrLevel, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrLevel = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLevel);
- }
- public function getLevelById( $idLevel, $user, $line ) {
- try {
- $idLevel = $this->encController->decrypt($idLevel);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getLevel = (array) DB::table('S002V01TNIVE')
- ->where('NIVE_CONI', '=', $idLevel)
- ->where('NIVE_NULI', '=', $line)
- ->first([
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'NIVE_COME AS COMENTARIOS',
- 'NIVE_ESTA AS ESTADO',
- 'NIVE_USRE AS USUARIO_REGISTRA',
- 'NIVE_FERE AS FECHA_REGISTRA',
- 'NIVE_USMO AS USUARIO_MODIFICA',
- 'NIVE_FEMO AS FECHA_MODIFICA',
- ]);
- $arrLevel = json_decode(json_encode($getLevel), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBY002: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLevel);
- }
- public function getLevelByAreaWarehouseActives($idWarehouse, $idArea, $user, $line) {
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE001: Ocurrió un error al desencriptar el ID del área', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $line)
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE003: Ocurrió un error al obtener el almacen.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE004: El almacen no existe.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $line)
- ->where('AREA_COAL', '=', $idWarehouse)
- ->where('AREA_COAR', '=', $idArea)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE005: Ocurrió un error al obtener el área.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE006: El área no existe.', [], 401);
- }
- try {
- $getLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_COAL', '=', $idWarehouse)
- ->where('NIVE_COAR', '=', $idArea)
- ->where('NIVE_NULI', '=', $line)
- ->where('NIVE_ESTA', '=', 'Activo')
- ->get([
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'NIVE_COME AS COMENTARIOS',
- ]);
- $arrLevel = json_decode(json_encode($getLevel), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_GETBYACTIVE007: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLevel);
- }
- public function registerLevel(Request $request) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'CODIGO_AREA' => 'required|string',
- 'CODIGO_NIVEL' => 'required|string',
- 'NOMBRE_NIVEL' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_LEVEL_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
-
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG002: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG003: El almacen no existe.', [], 406);
- }
- try {
- $validateExistArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('AREA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG004: Ocurrió un error al verificar el área.', $th->getMessage(), 500);
- }
- if (!$validateExistArea) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG005: El área no existe.', [], 406);
- }
- try {
- $validateExistLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('NIVE_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG006: Ocurrió un error al verificar el código del nivel.', $th->getMessage(), 406);
- }
- if ($validateExistLevel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG007: El código del nivel ya existe.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TNIVE')->insert([
- 'NIVE_NULI' => $requestData['NUMERO_LINEA'],
- 'NIVE_COAL' => $requestData['CODIGO_ALMACEN'],
- 'NIVE_COAR' => $requestData['CODIGO_AREA'],
- 'NIVE_CONI' => $requestData['CODIGO_NIVEL'],
- 'NIVE_NONI' => $requestData['NOMBRE_NIVEL'],
- 'NIVE_COME' => $requestData['COMENTARIOS'],
- 'NIVE_USRE' => $user,
- 'NIVE_FERE' => $currentDate,
- 'NIVE_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG008: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_REG009: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function updateLevel(Request $request, $idLevel) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'NOMBRE_NIVEL' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_LEVEL_UPD000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idLevel = $this->encController->decrypt($idLevel);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD001: Ocurrió un error al desencriptar el área.', $th->getMessage(), 500);
- }
- try {
- $validateExistLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_CONI', '=', $idLevel)
- ->where('NIVE_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD002: Ocurrió un error al verificar el código del área.', $th->getMessage(), 500);
- }
- if (!$validateExistLevel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD003: El área no existe.', [], 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD004:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD005: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD006: El almacen no existe.', [], 406);
- }
-
- try {
- $validateExistArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('AREA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD007: Ocurrió un error al verificar el área.', $th->getMessage(), 500);
- }
- if (!$validateExistArea) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD008: El área no existe.', [], 406);
- }
- try {
- $validateExistLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('NIVE_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD009: Ocurrió un error al verificar el código del nivel.', $th->getMessage(), 406);
- }
- if ($validateExistLevel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD010: El código del nivel ya existe.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('NIVE_CONI', '=', $idLevel)
- ->update([
- 'NIVE_NONI' => $requestData['NOMBRE_NIVEL'],
- 'NIVE_COME' => $requestData['COMENTARIOS'],
- 'NIVE_USMO' => $user,
- 'NIVE_FEMO' => $currentDate,
- 'NIVE_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD011: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_UPD012: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function deleteLevel(Request $request, $idLevel) {
- $validator = Validator::make($request->all(), [
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_LEVEL_DEL000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idLevel = $this->encController->decrypt($idLevel);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL001: Ocurrió un error al desencriptar el nivel.', $th->getMessage(), 500);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $arrLevel = (array) DB::table('S002V01TNIVE')
- ->where('NIVE_CONI', '=', $idLevel)
- ->where('NIVE_ESTA', '=', 'Activo')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->first([
- 'NIVE_COAL',
- 'NIVE_COAR'
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL003: Ocurrió un error al obtener la información del nivel.', $th->getMessage(), 500);
- }
- if (empty($arrLevel)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL004: El nivel no existe.', [], 406);
- }
- try {
- $validateExists = DB::table('S002V01TUBAR')
- ->where('UBAR_COAL', '=', $arrLevel['NIVE_COAL'])
- ->where('UBAR_COAR', '=', $arrLevel['NIVE_COAR'])
- ->where('UBAR_COZO', '=', $idLevel)
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL005: Ocurrió un error al obtener las ubicaciones de los artículos.', $th->getMessage(), 500);
- }
- if($validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL006: No se puede eliminar debido a que existen artículos ubicados en el nivel.', [], 406);
- }
- try {
- $countZones = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $arrLevel['NIVE_COAL'])
- ->where('ZONA_COAR', '=', $arrLevel['NIVE_COAR'])
- ->where('ZONA_CONI', '=', $idLevel)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL007: Ocurrió un error al obtener las zonas.', $th->getMessage(), 500);
- }
- if ($countZones > 0) {
- DB::rollBack();
- $quantity = $countZones === 1 ? 'existe 1 zona activa' : 'existen '.$countZones.' zonas activas';
- return $this->responseController->makeResponse(true, 'ERR_LEVEL_DEL008: No se puede eliminar debido a que '.$quantity.'.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TNIVE')
- ->where('NIVE_CONI', '=', $idLevel)
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'NIVE_ESTA' => 'Eliminado',
- 'NIVE_USMO' => $user,
- 'NIVE_FEMO' => $currentDate,
- 'NIVE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL009: Ocurrió un error al eliminar el nivel.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL010: No se pudo eliminar el nivel.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
- }
- public function getZoneByLevelAreaWarehouse($idWarehouse, $idArea, $idLevel, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY001: Ocurrió un error al desencriptar el ID del área', $th->getMessage(), 406);
- }
-
- try {
- $idLevel = $this->encController->decrypt($idLevel);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY002: Ocurrió un error al desencriptar el ID del nivel', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY003:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getZone = DB::table('S002V01TZONA')
- ->where('ZONA_COAL', '=', $idWarehouse)
- ->where('ZONA_COAR', '=', $idArea)
- ->where('ZONA_CONI', '=', $idLevel)
- ->where('ZONA_NULI', '=', $line)
- ->get([
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'ZONA_COME AS COMENTARIOS',
- 'ZONA_ESTA AS ESTADO',
- 'ZONA_USRE AS USUARIO_REGISTRA',
- 'ZONA_FERE AS FECHA_REGISTRA',
- 'ZONA_USMO AS USUARIO_MODIFICA',
- 'ZONA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrZone = json_decode(json_encode($getZone), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY004: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- foreach ($arrZone as $key => $value) {
- try {
- $countStock = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_COAL', '=', $idWarehouse)
- ->where('UBAR_COAR', '=', $idArea)
- ->where('UBAR_CONI', '=', $idLevel)
- ->where('UBAR_COZO', '=', $value['CODIGO_ZONA'])
- ->count();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(
- true,
- "ERR_WAREHOUSE_GET003: Ocurrió un error al obtener los almacenes.",
- $th->getMessage(),
- 500
- );
- }
- $value['CANTIDAD_STOCK'] = $countStock;
- $arrZone[$key] = $value;
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrZone, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrZone = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrZone);
- }
- public function getZoneById($idZone, $user, $line) {
- try {
- $idZone = $this->encController->decrypt($idZone);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $getZone = (array) DB::table('S002V01TZONA')
- ->where('ZONA_COZO', '=', $idZone)
- ->where('ZONA_NULI', '=', $line)
- ->first([
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'ZONA_COME AS COMENTARIOS',
- 'ZONA_ESTA AS ESTADO',
- 'ZONA_USRE AS USUARIO_REGISTRA',
- 'ZONA_FERE AS FECHA_REGISTRA',
- 'ZONA_USMO AS USUARIO_MODIFICA',
- 'ZONA_FEMO AS FECHA_MODIFICA',
- ]);
- $arrZone = json_decode(json_encode($getZone), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBY002: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrZone);
- }
- public function getZoneByLevelAreaWarehouseActive($idWarehouse, $idArea, $idLevel, $user, $line) {
- try {
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE000: Ocurrió un error al desencriptar el ID del almacen', $th->getMessage(), 406);
- }
- try {
- $idArea = $this->encController->decrypt($idArea);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE001: Ocurrió un error al desencriptar el ID del área', $th->getMessage(), 406);
- }
-
- try {
- $idLevel = $this->encController->decrypt($idLevel);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE002: Ocurrió un error al desencriptar el ID del nivel', $th->getMessage(), 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE003:'.$arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $line)
- ->where('ALMA_COAL', '=', $idWarehouse)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE004: Ocurrió un error al obtener el almacen.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE005: El almacen no existe.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $line)
- ->where('AREA_COAL', '=', $idWarehouse)
- ->where('AREA_COAR', '=', $idArea)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE006: Ocurrió un error al obtener el área.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE007: El área no existe.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $line)
- ->where('NIVE_COAL', '=', $idWarehouse)
- ->where('NIVE_COAR', '=', $idArea)
- ->where('NIVE_CONI', '=', $idLevel)
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE008: Ocurrió un error al obtener el nivel.', $th->getMessage(), 406);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE009: El nivel no existe.', [], 401);
- }
- try {
- $getZone = DB::table('S002V01TZONA')
- ->where('ZONA_COAL', '=', $idWarehouse)
- ->where('ZONA_COAR', '=', $idArea)
- ->where('ZONA_CONI', '=', $idLevel)
- ->where('ZONA_NULI', '=', $line)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->get([
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'ZONA_COME AS COMENTARIOS',
- ]);
- $arrZone = json_decode(json_encode($getZone), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_GETBYACTIVE010: Ocurrió un error al obtener los registros del área.', $th->getMessage(), 406);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrZone);
- }
- public function registerZone(Request $request) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'CODIGO_AREA' => 'required|string',
- 'CODIGO_NIVEL' => 'required|string',
- 'CODIGO_ZONA' => 'required|string',
- 'NOMBRE_ZONA' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_ZONE_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG001:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG002: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG003: El almacen no existe.', [], 406);
- }
- try {
- $validateExistArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('AREA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG004: Ocurrió un error al verificar el área.', $th->getMessage(), 500);
- }
- if (!$validateExistArea) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG005: El área no existe.', [], 406);
- }
- try {
- $validateExistNivel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('NIVE_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->where('NIVE_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG006: Ocurrió un error al verificar el nivel.', $th->getMessage(), 500);
- }
- if (!$validateExistNivel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG007: El nivel no existe.', [], 406);
- }
- try {
- $validateExistZone = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ZONA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('ZONA_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->where('ZONA_COZO', '=', $requestData['CODIGO_ZONA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG008: Ocurrió un error al verificar el código de la zona.', $th->getMessage(), 406);
- }
- if ($validateExistZone) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG009: El código de la zona ya existe.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TZONA')->insert([
- 'ZONA_NULI' => $requestData['NUMERO_LINEA'],
- 'ZONA_COAL' => $requestData['CODIGO_ALMACEN'],
- 'ZONA_COAR' => $requestData['CODIGO_AREA'],
- 'ZONA_CONI' => $requestData['CODIGO_NIVEL'],
- 'ZONA_COZO' => $requestData['CODIGO_ZONA'],
- 'ZONA_NOZO' => $requestData['NOMBRE_ZONA'],
- 'ZONA_COME' => $requestData['COMENTARIOS'],
- 'ZONA_USRE' => $user,
- 'ZONA_FERE' => $currentDate,
- 'ZONA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG010: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_REG011: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function updateZone(Request $request, $idZone) {
- $validator = Validator::make($request->all(), [
- 'CODIGO_ALMACEN' => 'required|string',
- 'CODIGO_AREA' => 'required|string',
- 'CODIGO_NIVEL' => 'required|string',
- 'NOMBRE_ZONA' => 'required|string',
- 'COMENTARIOS' => 'nullable|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_ZONE_UPD000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idZone = $this->encController->decrypt($idZone);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD001: Ocurrió un error al desencriptar la zona.', $th->getMessage(), 500);
- }
- try {
- $validateExistLevel = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COZO', '=', $idZone)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD002: Ocurrió un error al verificar el código de la zona.', $th->getMessage(), 500);
- }
- if (!$validateExistLevel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD003: El área no existe.', [], 406);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD004:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $validateExistWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ALMA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ALMA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD005: Ocurrió un error al verificar el almacen.', $th->getMessage(), 500);
- }
- if (!$validateExistWarehouse) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD006: El almacen no existe.', [], 406);
- }
- try {
- $validateExistArea = DB::table('S002V01TAREA')
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('AREA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('AREA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('AREA_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD007: Ocurrió un error al verificar el área.', $th->getMessage(), 500);
- }
- if (!$validateExistArea) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD008: El área no existe.', [], 406);
- }
- try {
- $validateExistNivel = DB::table('S002V01TNIVE')
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('NIVE_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('NIVE_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->where('NIVE_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD009: Ocurrió un error al verificar el nivel.', $th->getMessage(), 500);
- }
- if (!$validateExistNivel) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD010: El nivel no existe.', [], 406);
- }
- try {
- $validateExistZone = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ZONA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('ZONA_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->where('ZONA_COZO', '=', $requestData['CODIGO_ZONA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD011: Ocurrió un error al verificar el código de la zona.', $th->getMessage(), 406);
- }
- if ($validateExistZone) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD012: El código de la zona ya existe.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TZONA')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ZONA_COAL', '=', $requestData['CODIGO_ALMACEN'])
- ->where('ZONA_COAR', '=', $requestData['CODIGO_AREA'])
- ->where('ZONA_CONI', '=', $requestData['CODIGO_NIVEL'])
- ->where('ZONA_COZO', '=', $idZone)
- ->update([
- 'ZONA_NOZO' => $requestData['NOMBRE_ZONA'],
- 'ZONA_COME' => $requestData['COMENTARIOS'],
- 'ZONA_USMO' => $user,
- 'ZONA_FEMO' => $currentDate,
- 'ZONA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD013: Ocurrió un error al ingresar la información a la base de datos.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_UPD014: No se pudo guardar la información en la base de datos.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function deleteZone(Request $request, $idZone) {
- $validator = Validator::make($request->all(), [
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_ZONE_DEL000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- try {
- $idZone = $this->encController->decrypt($idZone);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL001: Ocurrió un error al desencriptar la zona.', $th->getMessage(), 500);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL002:'.$arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $arrZone = (array) DB::table('S002V01TZONA')
- ->where('ZONA_COZO', '=', $idZone)
- ->where('ZONA_ESTA', '=', 'Activo')
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->first([
- 'ZONA_COAL',
- 'ZONA_COAR',
- 'ZONA_CONI',
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL003: Ocurrió un error al obtener la información de la zona.', $th->getMessage(), 500);
- }
- if (empty($arrZone)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL004: La zona no existe.', [], 406);
- }
- try {
- $validateExists = DB::table('S002V01TUBAR')
- ->where('UBAR_COAL', '=', $arrZone['ZONA_COAL'])
- ->where('UBAR_COAR', '=', $arrZone['ZONA_COAR'])
- ->where('UBAR_CONI', '=', $arrZone['ZONA_CONI'])
- ->where('UBAR_COZO', '=', $idZone)
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL005: Ocurrió un error al obtener las ubicaciones de los artículos.', $th->getMessage(), 500);
- }
- if($validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL006: No se puede eliminar debido a que existen artículos ubicados en la zona.', [], 406);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TZONA')
- ->where('ZONA_COZO', '=', $idZone)
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'ZONA_ESTA' => 'Eliminado',
- 'ZONA_USMO' => $user,
- 'ZONA_FEMO' => $currentDate,
- 'ZONA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL007: Ocurrió un error al eliminar la zona.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'ERR_ZONE_DEL008: No se pudo eliminar la zona.', [], 406);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
- }
- // FUNCIÓN RECEPCIÓN DE ARTÍCULOS
- public function registerToStock(Request $request) {
- $validator = Validator::make($request->all(), [
- 'WAREHOUSE' => 'required|string',
- 'AREA' => 'required|string',
- 'LEVEL' => 'required|string',
- 'ZONE' => 'required|string',
- 'ORDER' => 'required|string',
- 'PRE_CODIFICATE' => 'required|array',
- 'ID_INFORMATION' => 'required|integer',
- 'FAMILIA' => 'required|string',
- 'SUBFAMILIA' => 'required|string',
- 'MODELO' => 'required|string',
- 'CODIGO_MODELO' => 'required|string',
- 'NUMBER_ITEMS' => 'required|integer',
- 'CODIGO_BARRAS' => 'required|string',
- 'FECHA_VENCIMIENTO' => 'nullable|string',
- 'IMAGES' => 'required|json',
- 'PRE_GENERATED_CODE' => 'required|string',
- 'CARACTER' => 'required|string|in:R,C',
- 'TIPO_DE_ARTICULO' => 'required|string|in:H,R',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- // Se desencripta y se verifica si el usuario existe
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idInformation = intval($requestData['ID_INFORMATION']);
- if($idInformation <= 0){
- goto noDescription;
- }
- try {
- $infoAdquisition = (array) DB::table('S002V01TINAR')->select([
- 'DEAR_CAAR AS CANTIDAD_ARTICULOS',
- ])->where([
- ['INAR_IDIN', '=', $requestData['ID_INFORMATION']],
- ['INAR_NULI', '=', $requestData['NUMERO_LINEA']],
- ])->join('S002V01TDEAR', 'DEAR_IDDE', '=', 'INAR_IDDE')
- ->join('S002V01TUNID', 'UNID_IDUN', '=', 'DEAR_IDUN')->first();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información de la adquisición.', $th->getMessage(), 404);
- }
-
- if (empty($infoAdquisition)) {
- return $this->responseController->makeResponse(true, 'No existe la información de la adquisición.', [], 404);
- }
- noDescription:
- $infoAdquisition['CANTIDAD_ARTICULOS'] = $idInformation <= 0 ? 1 : intval($infoAdquisition['CANTIDAD_ARTICULOS']);
- $requestData['NUMBER_ITEMS'] = intval($requestData['NUMBER_ITEMS']);
- $amountArticle = $infoAdquisition['CANTIDAD_ARTICULOS'] * $requestData['NUMBER_ITEMS'];
- // Se verifica la precodificación
- if (count($requestData['PRE_CODIFICATE']) !== $amountArticle) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad registrada de la precodificación no es igual la cantidad de artículos seleccionados.', [$requestData['PRE_CODIFICATE'], $requestData['NUMBER_ITEMS']], 500);
- }
- // Se obtiene la información encriptada
- try {
- $idWarehouse = $this->encController->decrypt($requestData['WAREHOUSE']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el almacen.', $th->getMessage(), 500);
- }
- if ($idWarehouse === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptación del almacen no es correcta.', [], 500);
- }
- try {
- $idArea = $this->encController->decrypt($requestData['AREA']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el área.', $th->getMessage(), 500);
- }
- if ($idArea === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptacipon del área no es correcta.', [], 500);
- }
- try {
- $idLevel = $this->encController->decrypt($requestData['LEVEL']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el nivel.', $th->getMessage(), 500);
- }
- if ($idLevel === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptación del nivel no es correcta.', [], 500);
- }
- try {
- $idZone = $this->encController->decrypt($requestData['ZONE']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la zona.', $th->getMessage(), 500);
- }
- if ($idZone === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptación de la zona no es correcta.', [], 500);
- }
- try {
- $idFamily = $this->encController->decrypt($requestData['FAMILIA']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la familia.', $th->getMessage(), 500);
- }
- if ($idFamily === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptación de la familia no es correcta.', [], 500);
- }
- try {
- $idSubfamily = $this->encController->decrypt($requestData['SUBFAMILIA']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la subfamilia.', $th->getMessage(), 500);
- }
- if ($idSubfamily === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La encriptación de la subfamilia no es correcta.', [], 500);
- }
- // Se verifica que la información exista
- try {
- $validateWarehouse = DB::table('S002V01TALMA')->where([
- ['ALMA_COAL', '=', $idWarehouse],
- ['ALMA_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el almacen existe.', $th->getMessage(), 500);
- }
- if ($validateWarehouse === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El almacen no existe.', [], 500);
- }
- try {
- $validateArea = DB::table('S002V01TAREA')->where([
- ['AREA_COAL', '=', $idWarehouse],
- ['AREA_COAR', '=', $idArea],
- ['AREA_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el área existe.', $th->getMessage(), 500);
- }
- if ($validateArea === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El área no existe.', [], 500);
- }
- try {
- $validateLevel = DB::table('S002V01TNIVE')->where([
- ['NIVE_COAL', '=', $idWarehouse],
- ['NIVE_COAR', '=', $idArea],
- ['NIVE_CONI', '=', $idLevel],
- ['NIVE_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el nivel existe.', $th->getMessage(), 500);
- }
- if ($validateLevel === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El nivel no existe.', [], 500);
- }
-
- try {
- $validateZone = DB::table('S002V01TZONA')->where([
- ['ZONA_COAL', '=', $idWarehouse],
- ['ZONA_COAR', '=', $idArea],
- ['ZONA_CONI', '=', $idLevel],
- ['ZONA_COZO', '=', $idZone],
- ['ZONA_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si la zona existe.', $th->getMessage(), 500);
- }
- if ($validateZone === false) {
- return $this->responseController->makeResponse(true, 'La zona no existe.', [], 500);
- }
- try {
- $validateFamily = DB::table('S002V01TFAMI')->where([
- ['FAMI_COFA', '=', $idFamily],
- ['FAMI_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si la familia existe.', $th->getMessage(), 500);
- }
- if ($validateFamily === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La familia no existe.', [], 500);
- }
- try {
- $validateSubfamily = DB::table('S002V01TSUBF')->where([
- ['SUBF_COFA', '=', $idFamily],
- ['SUBF_COSU', '=', $idSubfamily],
- ['SUBF_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si la subfamilia existe.', $th->getMessage(), 500);
- }
- if ($validateSubfamily === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La subfamilia no existe.', [], 500);
- }
- try {
- $orderNumber = intval($requestData['ORDER']);
- $orden = (array) DB::table('S002V01TORCO')->select([
- 'ORCO_IDLI AS ID_LINEA_SOLICITUD',
- 'ORCO_IDDE AS ID_DESCRIPCION',
- ])->where([
- ['ORCO_NUOR', '=', $requestData['ORDER']],
- ['ORCO_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ORCO_ESTA', '=', 'Recibido']
- ])->first();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información de la orden de compra.', $th->getMessage(), 500);
- }
- if (empty($orden) && $orderNumber > 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La orden de compra no existe.', [], 404);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- if($idInformation <= 0){
- goto noInformation;
- }
- try {
- $info = DB::table('S002V01TARSE')->select([
- 'ARSE_IDAS AS NUMERO_SELECCIONADO',
- 'ARTI_IDAR AS ID_ARTICULO',
- 'ARTI_COFA AS CODIGO_FAMILIA',
- 'ARTI_COSU AS CODIGO_SUBFAMILIA',
- 'ARTI_CODI AS CODIGO_ARTICULO',
- 'ARTI_NOMB AS NOMBRE_ARTICULO',
- 'DEAR_IDDE AS ID_DESCRIPCION',
- 'DEAR_IMAG AS IMAGENES',
- 'DEAR_DESC AS DESCRIPCION',
- 'DEAR_CARA AS CARACTERISTICAS',
- 'DEAR_COWE AS COMPRA_WEB',
- 'DEAR_NUPR AS NUMERO_PROVEEDOR',
-
- 'UNID_IDUN AS ID_UNIDAD',
- 'UNID_NOMB AS NOMBRE_UNIDAD',
- 'UNID_ACRO AS ACRONIMO_UNIDAD',
- 'INAR_IDIN AS ID_INFORMACION',
- 'INAR_CODI AS CODIGO_INFORMACION',
- 'INAR_MODE AS MODELO_INFORMACION',
- 'INAR_COMO AS CODIGO_MONEDA',
- 'INAR_PREC AS PRECIO',
- 'INAR_MOMI AS MONTO_MINIMO',
- 'INAR_CARA AS CARACTERISTICAS',
- ])->where([
- ['ARSE_IDIN', '=', $requestData['ID_INFORMATION']],
- ['ARSE_ESTA', '=', 'Activo'],
- ['ARSE_IDLI', '=', $orden['ID_LINEA_SOLICITUD']],
- ['ARSE_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARTI_NULI', '=', $requestData['NUMERO_LINEA']],
- ['DEAR_NULI', '=', $requestData['NUMERO_LINEA']],
- ['UNID_NULI', '=', $requestData['NUMERO_LINEA']],
- ['INAR_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARSE_ESTA', '=', 'Activo'],
- ['ARTI_ESTA', '=', 'Activo'],
- ['DEAR_ESTA', '=', 'Activo'],
- ['UNID_ESTA', '=', 'Activo'],
- ['INAR_ESTA', '=', 'Activo'],
- ['INAR_CODI', '=', $requestData['CODIGO_MODELO']],
- ['INAR_MODE', '=', $requestData['MODELO']],
- ])->join('S002V01TARTI', 'ARTI_IDAR', '=', 'ARSE_IDAR')
- ->join('S002V01TINAR', 'INAR_IDIN', '=', 'ARSE_IDIN')
- ->join('S002V01TDEAR', 'DEAR_IDDE', '=', 'INAR_IDDE')
- ->join('S002V01TUNID', 'UNID_IDUN', '=', 'DEAR_IDUN')
- ->limit($requestData['NUMBER_ITEMS'])->get()->all();
- //$info = json_decode(json_encode($info), true);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información de los productos.', $th->getMessage(), 500);
- }
- if ( is_null($info) || empty($info) ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No existen artículos asociados a la orden de compra.', [], 500);
- }
- // Se verifica que existan los datos suficientes para hacer el traslado.
- if ( count($info) !== $requestData['NUMBER_ITEMS']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad de artículos en la orden de compra no corresponde a la cantidad de artículos seleccionados a Stock.', [count($info), $requestData['NUMBER_ITEMS']], 500);
- }
- noInformation:
- // Se verifica los códigos de barras
- $uniqueBarcode = false;
- $arrBarcode = explode(',', $requestData['CODIGO_BARRAS']);
- if ( count($arrBarcode) === 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No hay códigos de barras registrados.', [], 500);
- } else if (count($arrBarcode) === $requestData['NUMBER_ITEMS']) {
- $uniqueBarcode = false;
- } else if (array_key_exists(0, $arrBarcode) && count($arrBarcode) === 1 && $arrBarcode[0] !== '' ) {
- $uniqueBarcode = true;
- } else {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error con los códigos de barras registrados.', [], 500);
- }
- // Se verifica que los códigos de barras del formulario no sean repetidos
- $temp_array = array_unique($arrBarcode);
- $duplicates = sizeof($temp_array) != sizeof($arrBarcode);
- if ($duplicates) {
- return $this->responseController->makeResponse(true, 'Los códigos de barras no se pueden repetir.', [], 400);
- }
- // Se verifican que los códigos de barras no se repitan
- foreach ($arrBarcode as $key => $barcode) {
- try {
- $validateBarcode = DB::table('S002V01TSTAR')->where([
- ['STAR_COBA', '=', $barcode],
- ['STAR_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar los códigos de barras.', $th->getMessage(), 500);
- }
- if ($validateBarcode === true) {
- return $this->responseController->makeResponse(true, 'El código '.$barcode.' ya se encuentra registrado', [], 500);
- }
- }
- // Se verifica la fecha de vencimientos
- $arrDueDate = array();
- $uniqueDueDate = false;
- if ($requestData['FECHA_VENCIMIENTO'] !== '' && !is_null($requestData['FECHA_VENCIMIENTO'])) {
- $arrDueDate = explode(',', $requestData['FECHA_VENCIMIENTO']);
- if ( count($arrDueDate) === 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No hay fechas de vencimientos registradas.', [], 500);
- } else if (count($arrDueDate) === $requestData['NUMBER_ITEMS']) {
- $uniqueDueDate = false;
- } else if (array_key_exists(0, $arrDueDate) && count($arrDueDate) === 1 && $arrDueDate[0] !== '' ) {
- $uniqueDueDate = true;
- } else {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error con las fechas de vencimientos registrados.', [], 500);
- }
- }
- // Se obtiene la fecha actual
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $idInfoStock = null;
- $arti = 0;
-
- if(isset($info)){
- $info[0]['ID_ARTICULO'];
- }
- try {
- $infoStock = (array) DB::table('S002V01TINST')->select([
- 'INST_IDIS AS ID_INFO_STOCK'
- ])->where([
- ['INST_COFA', '=', $idFamily],
- ['INST_COSU', '=', $idSubfamily],
- ['INST_ARTI', '=', $arti],
- [DB::raw('LOWER(INST_MODE)'), '=', strtolower($requestData['MODELO'])],
- [DB::raw('LOWER(INST_COMO)'), '=', strtolower($requestData['CODIGO_MODELO'])],
- ['INST_NULI', '=', $requestData['NUMERO_LINEA']],
- ['INST_ESTA', '=', 'Activo'],
- ])->first();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar la información del stock.', $th->getMessage(), 500);
- }
- if (empty($infoStock) || is_null($infoStock)) {
- // Se obtiene el arreglo de las imagenes
- $imagesArr = json_decode($requestData['IMAGES'], true);
- // Se verifica que el arreglo contenga imagenes
- if(count($imagesArr) < 1){
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El arreglo de la galería de imágenes está vacío.', [], 400);
- }
- $imagesGallery = [];
- // Se iteran las imagenes
- foreach($imagesArr as $imageFile){
- // Se verifica que tenga un formato correcto
- if(!array_key_exists('type', $imageFile)){
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El arreglo de la galería de imágenes tiene un formato inválido.', [], 400);
- // Si la imagen es nueva, entonces...
- }else if($imageFile['type'] == 'Nuevo'){
- // Se obtiene el ID de la imagen
- $tempFileID = $this->encController->decrypt($imageFile['id']);
- // Se obtiene la información registrada en la tabla de archivos temporales
- $tempFile = DB::table('S002V01TARTE')->where([
- ['ARTE_IDAR', '=', $tempFileID],
- ['ARTE_NULI', '=', $requestData['NUMERO_LINEA']]
- ])->first();
- // La imagen es colocada en su posición final
- $finalFile = $this->documentManagementController->moveFinalFile($requestData['NUMERO_LINEA'], 'GEEQ', 'FO', $tempFile, $user);
- // Si ocurrió un error, entonces se manda el error
- if(!$finalFile[0]){
- return $this->responseController->makeResponse(true, $finalFile[1], [], 400);
- }
- // La información es guardada en un arreglo
- $imagesGallery[] = $finalFile[1];
- }else{
- // Se desencripta el id de la imagen
- $fileID = $this->encController->decrypt($imageFile['id']);
- // Es guardada en un arreglo
- $imagesGallery[] = $fileID;
- }
- }
- // El arreglo de las imagenes es pasada en formato string
- $imagesGalleryStr = json_encode($imagesGallery);
- try {
- $idArtitle = isset($info) ? $info[0]['ID_ARTICULO'] : 0;
- $idInsert = DB::table('S002V01TINST')->insertGetId([
- 'INST_NULI' => $requestData['NUMERO_LINEA'],
- 'INST_COFA' => $idFamily,
- 'INST_COSU' => $idSubfamily,
- 'INST_ARTI' => $idArtitle,
- 'INST_MODE' => $requestData['MODELO'],
- 'INST_COMO' => $requestData['CODIGO_MODELO'],
- 'INST_IMAG' => $imagesGalleryStr,
- 'INST_USRE' => $user,
- 'INST_FERE' => $currentDate,
- 'INST_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al insertar la información del stock.', $th->getMessage(), 500);
- }
- if ($idInsert === false || is_null($idInsert)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo insertar la información del stock.', [], 500);
- }
- $idInfoStock = $idInsert;
- } else {
- $idInfoStock = $infoStock['ID_INFO_STOCK'];
- }
- if (is_null($idInfoStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo obtener el ID de la información del Stock.', [], 500);
- }
- for ($i=0; $i < $requestData['NUMBER_ITEMS']; $i++) {
- $dueDate = null;
- if (count($arrDueDate) > 0 && $uniqueDueDate === true) {
- $dueDate = $arrDueDate[0];
- } else if (count($arrDueDate) > 0 && $uniqueDueDate === false) {
- $dueDate = $arrDueDate[$i];
- }
- if (!is_null($dueDate) && str_contains($dueDate, 'T')) {
- $dueDate = explode('T', $dueDate)[0];
- }
- try {
- $preCodificate = $this->encController->decrypt($requestData['PRE_CODIFICATE'][$i]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el identificador de la pre-codificación.', $th->getMessage(), 500);
- }
- if ($preCodificate === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo desencriptar el identificador de la pre-codificación.', [], 500);
- }
- try {
- $tiad = isset($info) ? 'Por pedido' : 'Sin Pedido';
- $idun = isset($info) ? $info[$i]['ID_UNIDAD'] : 0;
- $nupr = isset($info) ? $info[$i]['NUMERO_PROVEEDOR'] : 0;
- $prad = isset($info) ? $info[$i]['PRECIO'] : 0;
- $como = isset($info) ? $info[$i]['CODIGO_MONEDA'] : 0;
- $cons = $requestData['CARACTER'] == 'C' ? 'Si' : 'No';
- $repa = $requestData['CARACTER'] == 'R' ? 'Si' : 'No';
- $idInsertStAr = DB::table('S002V01TSTAR')->insertGetId([
- 'STAR_NULI' => $requestData['NUMERO_LINEA'],
- 'STAR_IDIS' => $idInfoStock,
- 'STAR_COBA' => $uniqueBarcode === true ? $arrBarcode[0] : $arrBarcode[$i],
- 'STAR_FEVE' => $dueDate,
- 'STAR_IDUN' => $idun,
- 'STAR_NUPR' => $nupr,
- 'STAR_TIAD' => $tiad,
- 'STAR_IDPC' => $preCodificate,
- 'STAR_CONS' => $cons,
- 'STAR_REPA' => $repa,
- 'STAR_PRAD' => $prad,
- 'STAR_COMO' => $como,
- 'STAR_ESTA' => 'Pendiente',
- 'STAR_USRE' => $user,
- 'STAR_FERE' => $currentDate,
- 'STAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al registrar el equipamiento.', $th->getMessage(), 500);
- }
- if ($idInsertStAr === false || is_null($idInsertStAr)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo registrar el equipamiento.', [], 500);
- }
- try {
- $preCodeCodificate = $this->encController->decrypt($requestData['PRE_GENERATED_CODE']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el pre-código generado', $th->getMessage(), 500);
- }
- if ( $preCodeCodificate === false ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo desencriptar el pre-código del equipamientos.', [], 500);
- }
- try {
- $validateInsertUbAr = DB::table('S002V01TUBAR')->insert([
- 'UBAR_NULI' => $requestData['NUMERO_LINEA'],
- 'UBAR_COAL' => $idWarehouse,
- 'UBAR_COAR' => $idArea,
- 'UBAR_CONI' => $idLevel,
- 'UBAR_COZO' => $idZone,
- 'UBAR_IDST' => $idInsertStAr,
- 'UBAR_COUB' => $preCodeCodificate,
- 'UBAR_ESTA' => 'Pendiente',
- 'UBAR_USRE' => $user,
- 'UBAR_FERE' => $currentDate,
- 'UBAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al registrar la ubicación del artículo.', $th->getMessage(), 500);
- }
- if ( $validateInsertUbAr === false ) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo registrar la ubicación del artículo.', [], 500);
- }
- try {
- $idas = isset($info) ? $info[$i]['NUMERO_SELECCIONADO'] : 0;
- $idar = isset($info) ? $info[$i]['ID_ARTICULO'] : 0;
- $nupr = isset($info) ? $info[$i]['NUMERO_PROVEEDOR'] : 0;
- $idli = array_key_exists('ID_LINEA_SOLICITUD', $orden) ? $orden['ID_LINEA_SOLICITUD'] : 0;
- $validateUpdateArSe = DB::table('S002V01TARSE')->where([
- ['ARSE_IDAS', '=', $idas],
- ['ARSE_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARSE_IDLI', '=', $idli],
- ['ARSE_IDAR', '=', $idar],
- ['ARSE_NUPR', '=', $nupr],
- ['ARSE_IDIN', '=', $requestData['ID_INFORMATION']],
- ['ARSE_ESTA', '=', 'Activo'],
- ])->update([
- 'ARSE_ESTA' => 'Guardado',
- 'ARSE_USMO' => $user,
- 'ARSE_FEMO' => $currentDate,
- 'ARSE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar el artículo seleccionado.', $th->getMessage(), 500);
- }
- if ($validateUpdateArSe === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar el artículo seleccionado.', [], 500);
- }
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- // FUNCIÓN INTERCAMBIO DE ARTICULOS ENTRE ALMACENES
- public function getCurrentLocationArtitles($user, $line) {
- try {
- $arrStockArtitle = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->join('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->join('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->orderBy('ID_STOCK', 'DESC')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_IDIS AS ID_INFORMACION_STOCK',
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS NOMBRE_FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS NOMBRE_SUBFAMILIA',
- 'INST_ARTI AS ARTITULO',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_IMAG AS IMAGENES',
- 'UBAR_COUB AS CODIGO',
- DB::raw('CONCAT(ALMA_NOAL, " (", ALMA_COAL, ")") AS NOMBRE_ALMACEN'),
- DB::raw('CONCAT(AREA_NOAR, " (", AREA_COAR, ")") AS NOMBRE_AREA'),
- DB::raw('CONCAT(NIVE_NONI, " (", NIVE_CONI, ")") AS NOMBRE_NIVEL'),
- DB::raw('CONCAT(ZONA_NOZO, " (", ZONA_COZO, ")") AS NOMBRE_ZONA'),
- ]);
- $arrStockArtitle = json_decode(json_encode($arrStockArtitle), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStockArtitle as $key => $stockArtitle) {
- $imagesGallery = [];
- $arrImages = json_decode($stockArtitle['IMAGENES']);
- foreach($arrImages as $image) {
- $imageCodeEnc = $this->encController->encrypt($image);
- $response = $this->documentManagementController->privateGetPublicDocumentURL(
- $imageCodeEnc,
- $user,
- $line
- );
- if($response['error']){
- return $this->responseController->makeresponse(true, $response['msg'], [], 500);
- }
- $imagesGallery[] = $response['response']['public_uri'];
- }
- $stockArtitle['IMAGENES'] = $imagesGallery;
- $arrStockArtitle[$key] = $stockArtitle;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStockArtitle);
- }
- // FUNCIÓN PARA JOSÉ LUIS
- public function getInfoStock($limit, $offset, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStockArtitle = DB::table('S002V01TSTAR')->select([
- DB::raw("
- CONCAT(
- INST_IDIS,'|',
- SUBSTRING(UBAR_COUB, 1, LENGTH(UBAR_COUB) - 7),
- '|',INST_MODE,'|',INST_COMO,'|',IF(
- ISNULL(INST_STMI),'0',INST_STMI
- ),'|',IF(
- ISNULL(INST_STMA),'0',INST_STMA
- ),'|',EQUI_GAIM,'|',EQUI_PREQ,'|',PROV_NOCO,'|',
- UBAR_COAL,'|',ALMA_NOAL,'|',UBAR_COAR,'|',AREA_NOAR,
- '|',UBAR_CONI,'|',NIVE_NONI,'|',UBAR_COZO,'|',ZONA_NOZO,'|',IF(
- ISNULL(INST_CARE),'0',INST_CARE
- )
- ) AS INFO_EQUIPAMIENTO
- "),
- DB::raw("COUNT(*) AS CANTIDAD_DISPONIBLE")
- ])->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'UBAR_COUB')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'EQUI_PREQ')
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', function(JoinClause $join) {
- $join->on('AREA_COAL', '=', 'UBAR_COAL')
- ->on('AREA_COAR', '=', 'UBAR_COAR');
- })->join('S002V01TNIVE', function(JoinClause $join) {
- $join->on('NIVE_COAL', '=', 'UBAR_COAL')
- ->on('NIVE_COAR', '=', 'UBAR_COAR')
- ->on('NIVE_CONI', '=', 'UBAR_CONI');
- })->join('S002V01TZONA', function(JoinClause $join) {
- $join->on('ZONA_COAL', '=', 'UBAR_COAL')
- ->on('ZONA_COAR', '=', 'UBAR_COAR')
- ->on('ZONA_CONI', '=', 'UBAR_CONI')
- ->on('ZONA_COZO', '=', 'UBAR_COZO');
- })->where([
- ['INST_NULI', '=', $line],
- ['INST_ESTA', '=', 'Activo'],
- ])->groupBy('INFO_EQUIPAMIENTO')->limit($limit)->offset($offset)->get()->all();
- $arrStockArtitleFn = [];
- foreach($arrStockArtitle as $item){
- $equipmentInfoArr = explode('|', $item->INFO_EQUIPAMIENTO);
- $imagesGallery = json_decode($equipmentInfoArr[6], true);
- foreach($imagesGallery as $k0=>$v0){
- $v0 = $this->encController->encrypt($v0);
- $imagesGallery[$k0] = $v0;
- }
- $equipmentInfoArrFn = [
- 'ID_STOCK' => $this->encController->encrypt($equipmentInfoArr[0]),
- 'CODIGO_EQUIPAMIENTO' => $this->encController->encrypt($equipmentInfoArr[1]),
- 'MODELO' => $equipmentInfoArr[2],
- 'CODIGO_MODELO' => $this->encController->encrypt($equipmentInfoArr[3]),
- 'STOCK_MINIMO' => intval($equipmentInfoArr[4]),
- 'STOCK_MAXIMO' => intval($equipmentInfoArr[5]),
- 'GALERIA_IMAGENES' => $imagesGallery,
- 'ID_PROVEEDOR' => $this->encController->encrypt($equipmentInfoArr[7]),
- 'NOMBRE_PROVEEDOR' => $equipmentInfoArr[8],
- 'CODIGO_ALMACEN' => $this->encController->encrypt($equipmentInfoArr[9]),
- 'ALMACEN' => $equipmentInfoArr[10],
- 'CODIGO_AREA' => $this->encController->encrypt($equipmentInfoArr[11]),
- 'AREA' => $equipmentInfoArr[12],
- 'CODIGO_NIVEL' => $this->encController->encrypt($equipmentInfoArr[13]),
- 'NIVEL' => $equipmentInfoArr[14],
- 'CODIGO_ZONA' => $this->encController->encrypt($equipmentInfoArr[15]),
- 'ZONA' => $equipmentInfoArr[16],
- 'CANTIDAD_DISPONIBLE' => $item->CANTIDAD_DISPONIBLE,
- 'CANTIDAD_REABASTECIMIENTO' => intval($equipmentInfoArr[17])
- ];
- $arrStockArtitleFn[] = $equipmentInfoArrFn;
- }
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStockArtitleFn);
- }
- public function getInfoStockTotalItems($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStockArtitle = DB::table('S002V01TINST')->select([
- DB::raw('COUNT(*) AS TOTAL_ITEMS')
- ])->join('S002V01TUBAR', 'UBAR_IDST', '=', 'INST_IDIS')
- ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'UBAR_COUB')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'EQUI_PREQ')
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', function(JoinClause $join) {
- $join->on('AREA_COAL', '=', 'UBAR_COAL')
- ->on('AREA_COAR', '=', 'UBAR_COAR');
- })->join('S002V01TNIVE', function(JoinClause $join) {
- $join->on('NIVE_COAL', '=', 'UBAR_COAL')
- ->on('NIVE_COAR', '=', 'UBAR_COAR')
- ->on('NIVE_CONI', '=', 'UBAR_CONI');
- })->join('S002V01TZONA', function(JoinClause $join) {
- $join->on('ZONA_COAL', '=', 'UBAR_COAL')
- ->on('ZONA_COAR', '=', 'UBAR_COAR')
- ->on('ZONA_CONI', '=', 'UBAR_CONI')
- ->on('ZONA_COZO', '=', 'UBAR_COZO');
- })->where([
- ['INST_NULI', '=', $line],
- ['INST_ESTA', '=', 'Activo'],
- ])->first();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStockArtitle);
- }
- public function moveToStock(Request $request, string $idStock ) {
- $validator = Validator::make($request->all(), [
- 'ALMACEN' => 'required|string',
- 'AREA' => 'required|string',
- 'NIVEL' => 'required|string',
- 'ZONA' => 'required|string',
- 'FAMILIA' => 'required|string',
- 'SUBFAMILIA' => 'required|string',
- 'LINEA' => 'required|string',
- 'TIPO' => 'required|string',
- 'MODELO' => 'required|string',
- 'ID_EQUIPMENTO' => 'required|string',
- 'STATUS' => 'required|string',
- 'CODIGO_EQUIPAMIENTO' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrInfoRegistro = array();
- $arrToWorkflow = array();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- // Se obtiene el identificador del stock
- $idStock = $this->encController->decrypt($idStock);
- if ($idStock === false) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el stock.', [], 406);
- }
-
- // Se obtiene el valor del almacen
- $requestData['ALMACEN'] = $this->encController->decrypt($requestData['ALMACEN']);
- if ($requestData['ALMACEN'] === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del almacen.', [], 406);
- }
-
- // Se obtiene el valor del area
- $requestData['AREA'] = $this->encController->decrypt($requestData['AREA']);
- if ($requestData['AREA'] === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del área.', [], 406);
- }
-
- // Se obtiene el valor del nivel
- $requestData['NIVEL'] = $this->encController->decrypt($requestData['NIVEL']);
- if ($requestData['NIVEL'] === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del nivel.', [], 406);
- }
-
- // Se obtiene el valor de la zona
- $requestData['ZONA'] = $this->encController->decrypt($requestData['ZONA']);
- if ($requestData['ZONA'] === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID de la zona.', [], 406);
- }
- // Se verifica el código del artículo que sea válido
- $codeVerified = $this->verifyPreCode($requestData);
- if ($codeVerified !== $requestData['CODIGO_EQUIPAMIENTO']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El código generado no coincide con el código verificado a partir de la información del formulario.', [], 406);
- }
- // Se verifica que el código no sea el mismo que el anterior
- if ($requestData['ANTERIOR_CODIGO_EQUIPAMIENTO'] === $requestData['CODIGO_EQUIPAMIENTO']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Los códigos no deben ser los mismos.', [], 406);
- }
- // Se verifica que la información del almacen exista
- try {
- $validateWarehouse = DB::table('S002V01TALMA')
- ->where('ALMA_COAL', '=', $requestData['ALMACEN'])
- ->where('ALMA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el almacen existe.', $th->getMessage(), 500);
- }
- if ($validateWarehouse === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El almacen no existe.', [], 500);
- }
- // Se verifica que la informacion del área exista
- try {
- $validateArea = DB::table('S002V01TAREA')
- ->where('AREA_COAL', '=', $requestData['ALMACEN'])
- ->where('AREA_COAR', '=', $requestData['AREA'])
- ->where('AREA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el área existe.', $th->getMessage(), 500);
- }
- if ($validateArea === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El área no existe.', [], 500);
- }
- // Se verifica que la información del nivel exista
- try {
- $validateLevel = DB::table('S002V01TNIVE')
- ->where('NIVE_COAL', '=', $requestData['ALMACEN'])
- ->where('NIVE_COAR', '=', $requestData['AREA'])
- ->where('NIVE_CONI', '=', $requestData['NIVEL'])
- ->where('NIVE_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si el nivel existe.', $th->getMessage(), 500);
- }
- if ($validateLevel === false) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El nivel no existe.', [], 500);
- }
-
- // Se verifica que la información de la zona
- try {
- $validateZone = DB::table('S002V01TZONA')
- ->where('ZONA_COAL', '=', $requestData['ALMACEN'])
- ->where('ZONA_COAR', '=', $requestData['AREA'])
- ->where('ZONA_CONI', '=', $requestData['NIVEL'])
- ->where('ZONA_COZO', '=', $requestData['ZONA'])
- ->where('ZONA_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si la zona existe.', $th->getMessage(), 500);
- }
- if ($validateZone === false) {
- return $this->responseController->makeResponse(true, 'La zona no existe.', [], 500);
- }
- $arrToWorkflow[] = [
- 'ANTERIOR_CODIGO_EQUIPAMIENTO' => $requestData['ANTERIOR_CODIGO_EQUIPAMIENTO'],
- 'NUEVO_CODIGO_EQUIPAMIENTO' => $requestData['CODIGO_EQUIPAMIENTO'],
- 'ALMACEN' => $requestData['ALMACEN'],
- 'AREA' => $requestData['AREA'],
- 'NIVEL' => $requestData['NIVEL'],
- 'ZONA' => $requestData['ZONA'],
- ];
- $strToWorkflow = json_encode($arrToWorkflow);
- $encToWorkflow = $this->encController->encrypt($strToWorkflow);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
-
- try {
- $validateUpdate = DB::table('S002V01TUBAR')
- ->where('UBAR_IDST', '=', $idStock)
- ->where('UBAR_COUB', '=', $requestData['ANTERIOR_CODIGO_EQUIPAMIENTO'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'UBAR_ESTA' => 'Obsoleto',
- 'UBAR_USMO' => $user,
- 'UBAR_FEMO' => $currentDate,
- 'UBAR_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar el estado actual del código del stock.', $th->getMessage(), 406);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar el estado actual del código del stock.', [], 406);
- }
- try {
- $idUbication = DB::table('S002V01TUBAR')->insertGetId([
- 'UBAR_NULI' => $requestData['NUMERO_LINEA'],
- 'UBAR_COAL' => $requestData['ALMACEN'],
- 'UBAR_COAR' => $requestData['AREA'],
- 'UBAR_CONI' => $requestData['NIVEL'],
- 'UBAR_COZO' => $requestData['ZONA'],
- 'UBAR_IDST' => $idStock,
- 'UBAR_COUB' => $requestData['CODIGO_EQUIPAMIENTO'],
- 'UBAR_ESTA' => 'Workflow',
- 'UBAR_USRE' => $user,
- 'UBAR_FERE' => $currentDate,
- 'UBAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al insertar la nueva ubicación del artículo.', $th->getMessage(), 406);
- }
- if (!$idUbication) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo insertar la nueva ubicación del artículo.', [], 406);
- }
- $arrInfoRegistro['S002V01TUBAR'][] = [
- 'UBAR_IDUB' => $idUbication,
- 'UBAR_IDST' => $idStock,
- 'UBAR_COUB' => $requestData['CODIGO_EQUIPAMIENTO'],
- ];
- try {
- $equipment = (array) DB::table('S002V01TEQUI')
- ->where('EQUI_COEQ', '=', $requestData['ANTERIOR_CODIGO_EQUIPAMIENTO'])
- ->where('EQUI_NULI', '=', $requestData['NUMERO_LINEA'])
- ->first();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del artículo.', $th->getMessage(), 406);
- }
- if (is_null($equipment) || empty($equipment)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se se pudo obtener la información del equipamiento.', [], 406);
- }
- $strHistorial = $equipment['EQUI_HICO'];
- $arrHistorial = json_decode($strHistorial, true);
- $arrHistorial[] = [
- "FECHA" => $currentDate,
- "PADRE" => null,
- "CODIGO" => $requestData['CODIGO_EQUIPAMIENTO'],
- ];
- $strHistorial = json_encode($arrHistorial);
- try {
- $validateUpdate = DB::table('S002V01TEQUI')
- ->where('EQUI_COEQ', '=', $requestData['ANTERIOR_CODIGO_EQUIPAMIENTO'])
- ->where('EQUI_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'EQUI_COEQ' => $requestData['CODIGO_EQUIPAMIENTO'],
- 'EQUI_ALMA' => $requestData['ALMACEN'],
- 'EQUI_AREA' => $requestData['AREA'],
- 'EQUI_NIVE' => $requestData['NIVEL'],
- 'EQUI_ZONA' => $requestData['ZONA'],
- 'EQUI_HICO' => $strHistorial,
- 'EQUI_USMO' => $user,
- 'EQUI_FEMO' => $currentDate,
- 'EQUI_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar el equipamiento.', $th->getMessage(), 406);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar el equipamiento.', [], 406);
- }
- try {
- $existsEquipmentWorkflow = DB::table('S002V01TEQWO')
- ->where('EQWO_COEQ', '=', $requestData['CODIGO_EQUIPAMIENTO'])
- ->where('EQWO_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('EQWO_ESTA', '=', 'En Workflow')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el estado del equipamiento.', $th->getMessage(), 406);
- }
- if ( !$existsEquipmentWorkflow ) {
- try {
- $idEquipmentWorkflow = DB::table('S002V01TEQWO')->insertGetId([
- 'EQWO_NULI' => $requestData['NUMERO_LINEA'],
- 'EQWO_COEQ' => $requestData['CODIGO_EQUIPAMIENTO'],
- 'EQWO_ESTA' => 'En Workflow',
- 'EQWO_USRE' => $user,
- 'EQWO_FERE' => $currentDate,
- 'EQWO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al registrar el equipamiento en el workflow.', $th->getMessage(), 406);
- }
- if (!$idEquipmentWorkflow) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo registrar el equipamiento en el workflow.', [], 406);
- }
- $arrInfoRegistro['S002V01TEQWO'][] = [
- 'EQWO_IDEW' => $idEquipmentWorkflow,
- 'EQWO_COEQ' => $requestData['CODIGO_EQUIPAMIENTO'],
- ];
- } else {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo hacer el intercambio si el equipamiento se encuentra en proceso de validación.', [], 406);
- }
- $strInfoRegistro = json_encode($arrInfoRegistro);
- $encInfoRegistro = $this->encController->encrypt($strInfoRegistro);
- /*
- TABLA: S002V01TPRWO
- [
- {
- "TABLA": "S002V01TEQWO",
- "CAMPO_ESTADO": "EQWO_ESTA",
- "NUMERO_LINEA": "EQWO_NULI",
- "CAMBIO_ESTADO": "Finalizado",
- "FECHA_MODIFICA": "EQWO_FEMO",
- "FECHA_REGISTRA": "EQWO_FERE",
- "USUARIO_MODIFICA": "EQWO_USMO",
- "USUARIO_REGISTRA": "EQWO_USRE"
- },
- {
- "TABLA": "S002V01TUBAR",
- "CAMPO_ESTADO": "UBAR_ESTA",
- "NUMERO_LINEA": "UBAR_NULI",
- "CAMBIO_ESTADO": "Activo",
- "FECHA_MODIFICA": "UBAR_FEMO",
- "FECHA_REGISTRA": "UBAR_FERE",
- "USUARIO_MODIFICA": "UBAR_USMO",
- "USUARIO_REGISTRA": "UBAR_USRE"
- }
- ] */
- $arrResponseRequestWorkflow = $this->processManagementController->registerRequestWorkflow(2, $encToWorkflow, $encInfoRegistro, $user, $requestData['NUMERO_LINEA']);
- if ($arrResponseRequestWorkflow['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseRequestWorkflow['msg'], $arrResponseRequestWorkflow['response'], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
-
- private function verifyPreCode(array $parameters) {
- $siteTag = '';
- $site = ['LINEA', 'AREA', 'NIVEL'];
- foreach($site as $ctrl){
- $val = $parameters[$ctrl];
- if($ctrl == 'LINE'){
- $val = intval($val) < 10 ? "0$val" : "$val";
- }
- $siteTag .= $val.'.';
- }
- $siteTag = substr($siteTag, 0, -1);
- $areaTag = '';
- $area = ['ALMACEN', 'ZONA'];
- foreach($area as $ctrl){
- $val = $parameters[$ctrl];
- $areaTag .= $val.'.';
- }
- $areaTag = substr($areaTag, 0, -1);
- $technicalSpecificationTag = '';
- $technicalSpecification = ['FAMILIA', 'SUBFAMILIA', 'STATUS'];
- foreach($technicalSpecification as $ctrl){
- $val = $parameters[$ctrl];
- $technicalSpecificationTag .= $val.'.';
- }
- $technicalSpecificationTag = substr($technicalSpecificationTag, 0, -1);
- $equipmentIdentifierTag = '';
- $equipmentIdentifier = ['TIPO', 'MODELO', 'ID_EQUIPMENTO'];
- foreach($equipmentIdentifier as $ctrl){
- $val = $parameters[$ctrl];
- if($ctrl == 'MODELO'){
- $val = $this->processElement($val, 'model');
- }else if($ctrl == 'TIPO'){
- $val = $this->processElement($val, 'element');
- }
- $equipmentIdentifierTag .= $val.'-';
- }
- $equipmentIdentifierTag = substr($equipmentIdentifierTag, 0, -1);
-
- $code = $siteTag.'-'.$areaTag.'_'.$technicalSpecificationTag.'.'.$equipmentIdentifierTag;
-
- return $code;
- }
- private function processElement(string $value, string $type) : string {
- $value = strtoupper($value);
- $validVal0 = $this->functionsController->unaccent($value);
- $CONNECTORS = ['DE', 'PARA', 'Y', 'O', 'DEL', 'EL', 'LA', 'LOS', 'POR', 'EN'];
- $valueArr1 = explode(' ', $validVal0);
- $validVal1 = [];
- foreach($valueArr1 as $word){
- if(!in_array($word, $CONNECTORS)){
- $validVal1[] = $word;
- }
- }
- $validLength = count($validVal1);
- $validVal2 = "";
- if($validLength < 1){
- return "ERROR";
- }else if($validLength == 1){
- if(strlen($validVal1[0]) < 5){
- $validVal2 = $validVal1[0];
- for($i = strlen($validVal1[0]); $i < 5; $i++){
- if($type == 'model'){
- $validVal2 = "X$validVal2";
- }else{
- $validVal2 = $validVal2 . "X";
- }
- }
- }else{
- $validVal2 = substr($validVal1[0], 0, 5);
- }
- }else if($validLength == 2){
- $word1 = "";
- if(strlen($validVal1[0]) < 2){
- if($type == 'model'){
- $word1 = "X$validVal1[0]";
- }else{
- $word1 = $validVal1[0] . "X";
- }
- }else{
- $word1 = substr($validVal1[0], 0, 2);
- }
- $word2 = "";
- if(strlen($validVal1[1]) < 3){
- $word2 = $validVal1[1];
- for($i = strlen($validVal1[1]); $i < 3; $i++){
- if($type == 'model'){
- $word2 = "X$word2";
- }else{
- $word2 = $word2 . "X";
- }
- }
- }else{
- $word2 = substr($validVal1[1], 0, 3);
- }
- $validVal2 = $word1 . $word2;
- }else if($validLength == 3){
- $word1 = "";
- if(strlen($validVal1[0]) < 2){
- if($type == 'model'){
- $word1 = "X$validVal1[0]";
- }else{
- $word1 = $validVal1[0] . "X";
- }
- }else{
- $word1 = substr($validVal1[0], 0, 2);
- }
-
- $word2 = substr($validVal1[1], 0, 1);
- $word3 = "";
- if(strlen($validVal1[2]) < 2){
- if($type == 'model'){
- $word3 = "X$validVal1[2]";
- }else{
- $word3 = $validVal1[2] . "X";
- }
- }else{
- $word3 = substr($validVal1[2], 0, 2);
- }
- $validVal2 = $word1 . $word2 . $word3;
- }else if($validLength == 4){
- $word1 = "";
- if(strlen($validVal1[0]) < 2){
- if($type == 'model'){
- $word1 = "X$validVal1[0]";
- }else{
- $word1 = $validVal1[0] . "X";
- }
- }else{
- $word1 = substr($validVal1[0], 0, 2);
- }
-
- $word2 = substr($validVal1[1], 0, 1);
- $word3 = substr($validVal1[2], 0, 1);
- $word4 = substr($validVal1[3], 0, 1);
- $validVal2 = $word1 . $word2 . $word3 . $word4;
- }else if($validLength >= 5){
- $word1 = substr($validVal1[0], 0, 1);
- $word2 = substr($validVal1[1], 0, 1);
- $word3 = substr($validVal1[2], 0, 1);
- $word4 = substr($validVal1[3], 0, 1);
- $word5 = substr($validVal1[4], 0, 1);
- $validVal2 = $word1 . $word2 . $word3 . $word4 . $word5;
- }else{
- return "ERROR";
- }
- return $validVal2;
- }
- public function getLocationStock($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrLocation = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->whereOr('UBAR_ESTA', '=', 'Otro')
- ->get([
- DB::raw("CONCAT('#', UBAR_IDST) AS ID_STOCK"),
- DB::raw("CONCAT('#', UBAR_IDUB) AS ID_UBICACION "),
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'UBAR_ESTA AS ESTADO',
- 'UBAR_USRE AS USUARIO_REGISTRA',
- 'UBAR_FERE AS FECHA_REGISTRA',
- 'UBAR_USMO AS USUARIO_MODIFICA',
- 'UBAR_FEMO AS FECHA_MODIFICA',
- ]);
- $arrLocation = json_decode(json_encode($arrLocation), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el emplazamiento del stock.', $th->getMessage(), 500);
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrLocation, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrLocation = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLocation);
- }
- public function getLocationByStock($idStock, $user, $line) {
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID del Stock.', [], 401);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrLocation = DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_IDST', '=', $idStock)
- ->orderBy('UBAR_IDUB', 'DESC')
- ->get([
- DB::raw("CONCAT('#', UBAR_IDUB) AS ID_UBICACION "),
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'UBAR_ESTA AS ESTADO',
- 'UBAR_USRE AS USUARIO_REGISTRA',
- 'UBAR_FERE AS FECHA_REGISTRA',
- 'UBAR_USMO AS USUARIO_MODIFICA',
- 'UBAR_FEMO AS FECHA_MODIFICA',
- ]);
- $arrLocation = json_decode(json_encode($arrLocation), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el emplazamiento del stock.', $th->getMessage(), 500);
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrLocation, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrLocation = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLocation);
- }
- public function getDetaisLocation($idStock, $idLocation, $user, $line) {
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID del Stock.', [], 401);
- }
-
- $idLocation = $this->encController->decrypt($idLocation);
- if (is_null($idLocation)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la ubicación.', [], 401);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrLocation = (array) DB::table('S002V01TUBAR')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_IDST', '=', $idStock)
- ->where('UBAR_IDUB', '=', $idLocation)
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->join('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->join('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->first([
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- DB::raw('CONCAT(ALMA_NOAL, " (", ALMA_COAL, ")") AS ALMACEN'),
- DB::raw('CONCAT(AREA_NOAR, " (", AREA_COAL, ")") AS AREA'),
- DB::raw('CONCAT(NIVE_NONI, " (", NIVE_CONI, ")") AS NIVEL'),
- DB::raw('CONCAT(ZONA_NOZO, " (", ZONA_COZO, ")") AS ZONA'),
- 'UBAR_ESTA AS ESTADO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el emplazamiento del stock.', $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrLocation);
- }
- public function search(Request $request) {
- $validator = Validator::make($request->all(), [
- 'ID_STOCK' => 'nullable|string',
- 'CODIGO_EQUIPAMIENTO' => 'nullable|string',
- 'ID_UBICACION' => 'nullable|string',
- 'FAMILIA' => 'nullable|string',
- 'SUBFAMILIA' => 'nullable|string',
- 'MODELO' => 'nullable|string',
- 'CODIGO_MODELO' => 'nullable|string',
- 'ALMACEN' => 'nullable|string',
- 'AREA' => 'nullable|string',
- 'NIVEL' => 'nullable|string',
- 'ZONA' => 'nullable|string',
- 'TIPO_ADQUISICION' => 'nullable|string',
- 'NUMERO_PROVEEDOR' => 'nullable|string',
- 'CODIGO_BARRAS' => 'nullable|string',
- 'FECHA_VENCIMIENTO' => 'nullable|string',
- 'TASA_ROTACION' => 'nullable|string',
- 'STOCK_MINIMO' => 'nullable|string',
- 'STOCK_MAXIMO' => 'nullable|string',
- 'ESTADO' => 'nullable|string',
- 'CONSUMIBLE' => 'nullable|string',
- 'REPARABLE' => 'nullable|string',
- 'USUARIO' => 'nullable|string',
- 'NUMERO_LINEA' => 'nullable|string',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrClausules = [
- 'FAMILIA' => 'INST_COFA',
- 'SUBFAMILIA' => 'INST_COSU',
- 'MODELO' => 'INST_MODE',
- 'CODIGO_MODELO' => 'INST_COMO',
- 'STOCK_MINIMO' => 'INST_STMI',
- 'STOCK_MAXIMO' => 'INST_STMA',
- 'ID_STOCK' => 'STAR_IDST',
- 'CODIGO_BARRAS' => 'STAR_COBA',
- 'FECHA_VENCIMIENTO' => 'STAR_FEVE',
- 'NUMERO_PROVEEDOR' => 'STAR_NUPR',
- 'TIPO_ADQUISICION' => 'STAR_TIAD',
- 'CONSUMIBLE' => 'STAR_CONS',
- 'REPARABLE' => 'STAR_REPA',
- 'ESTADO' => 'STAR_ESTA',
- 'ID_UBICACION' => 'UBAR_IDUB',
- 'ALMACEN' => 'UBAR_COAL',
- 'AREA' => 'UBAR_COAR',
- 'NIVEL' => 'UBAR_CONI',
- 'ZONA' => 'UBAR_COZO',
- 'CODIGO_EQUIPAMIENTO' => 'UBAR_COUB',
- ];
- $arrWhere = array();
- foreach ($requestData as $key => $value) {
- if (!is_null($value) && $key !== 'USUARIO' && $key !== 'NUMERO_LINEA') {
- $column = $arrClausules[$key];
- $arrWhere[$column] = $value;
- }
- }
- if (empty($arrWhere)) {
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", []);
- }
- try {
- $arrInfo = DB::table('S002V01TSTAR')
- ->where($arrWhere)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INST_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_IMAG AS IMAGENES',
- 'UBAR_COUB AS CODIGO',
- ]);
- $arrInfo = json_decode(json_encode($arrInfo), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al recuperar la información.", $th->getMessage(), 500);
- }
- foreach ($arrInfo as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrInfo[$key]['IMAGENES'] = $arrUrlImage;
- }
-
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrInfo);
- }
- public function getInfoByStock($idStock, $user, $line) {
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID del Stock.', [], 401);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrInfo = DB::table('S002V01TSTAR')->select([
- DB::raw("CONCAT(FAMI_NOFA, ' (', FAMI_COFA, ')') AS FAMILIA"),
- DB::raw("CONCAT(SUBF_NOSU, ' (', SUBF_COSU, ')') AS SUBFAMILIA"),
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'STAR_IDST AS ID_STOCK',
- 'STAR_COBA AS CODIGO_BARRAS',
- 'STAR_FEVE AS FECHA_VENCIMIENTO',
- DB::raw('CONCAT(PROV_NOCO, " (", PROV_NUPR, ")") AS NUMERO_PROVEEDOR'),
- 'STAR_TIAD AS TIPO_ADQUISICION',
- 'STAR_CONS AS CONSUMIBLE',
- 'STAR_REPA AS REPARABLE',
- 'STAR_ESTA AS ESTADO',
- 'UBAR_IDUB AS ID_UBICACION',
- DB::raw('CONCAT(ALMA_NOAL, " (", ALMA_COAL, ")") AS ALMACEN'),
- DB::raw('CONCAT(AREA_NOAR, " (", AREA_COAR, ")") AS AREA'),
- DB::raw('CONCAT(NIVE_NONI, " (", NIVE_CONI, ")") AS NIVEL'),
- DB::raw('CONCAT(ZONA_NOZO, " (", ZONA_COZO, ")") AS ZONA'),
- 'EQUI_COEQ AS CODIGO_EQUIPAMIENTO',
- ])->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', function (JoinClause $join) {
- $join->on('SUBF_COFA', '=', 'INST_COFA')
- ->on('SUBF_COSU', '=', 'INST_COSU');
- })->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'UBAR_COUB')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'EQUI_PREQ')
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', function (JoinClause $join) {
- $join->on('AREA_COAL', '=', 'UBAR_COAL')
- ->on('AREA_COAR', '=', 'UBAR_COAR');
- })->join('S002V01TNIVE', function (JoinClause $join) {
- $join->on('NIVE_COAL', '=', 'UBAR_COAL')
- ->on('NIVE_COAR', '=', 'UBAR_COAR')
- ->on('NIVE_CONI', '=', 'UBAR_CONI');
- })->join('S002V01TZONA', function (JoinClause $join) {
- $join->on('ZONA_COAL', '=', 'UBAR_COAL')
- ->on('ZONA_COAR', '=', 'UBAR_COAR')
- ->on('ZONA_CONI', '=', 'UBAR_CONI')
- ->on('ZONA_COZO', '=', 'UBAR_COZO');
- })->where([
- ['STAR_IDST', '=', $idStock],
- ['STAR_NULI', '=', $line],
- ['INST_NULI', '=', $line],
- ['UBAR_NULI', '=', $line],
- ['INST_ESTA', '=', 'Activo'],
- ['UBAR_ESTA', '=', 'Activo'],
- ])->first();
- $arrInfo = json_decode(json_encode($arrInfo), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al recuperar la información.", $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrInfo);
- }
- public function getMaxMinStock($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrInfoStock = DB::table('S002V01TINST')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->get([
- 'INST_IDIS AS ID_INFORMACION_STOCK',
- DB::raw('CONCAT(FAMI_NOFA, " (", FAMI_COFA, ")") AS FAMILIA'),
- DB::raw('CONCAT(SUBF_NOSU, " (", SUBF_COSU, ")") AS SUBFAMILIA'),
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrInfoStock = json_decode(json_encode($arrInfoStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrInfoStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrInfoStock[$key]['IMAGENES'] = $arrUrlImage;
- try {
- $countStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_IDIS', '=', $info['ID_INFORMACION_STOCK'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- $arrInfoStock[$key]['CANTIDAD_ACTUAL'] = $countStock;
-
- $stateStock = '';
- if ($countStock < $info['STOCK_MINIMO'] && !is_null($info['STOCK_MINIMO'])) {
- $stateStock = 'Menor al Stock Requerido';
- } else if ($countStock > $info['STOCK_MAXIMO'] && !is_null($info['STOCK_MAXIMO'])) {
- $stateStock = 'Exedente al Stock Requerido';
- } else if (is_null($info['STOCK_MINIMO']) && is_null($info['STOCK_MAXIMO'])) {
- $stateStock = 'No aplica';
- } else {
- $stateStock = 'Stock Normal';
- }
- if (is_null($info['STOCK_MINIMO'])) {
- $arrInfoStock[$key]['STOCK_MINIMO'] = 'Sin Definir';
- }
- if (is_null($info['STOCK_MAXIMO'])) {
- $arrInfoStock[$key]['STOCK_MAXIMO'] = 'Sin Definir';
- }
-
- $arrInfoStock[$key]['ESTADO'] = $stateStock;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrInfoStock);
- }
- public function updateStockMaxMin(Request $request, $idInfo) {
- $validator = Validator::make($request->all(), [
- 'STOCK_MINIMO' => 'required|integer',
- 'STOCK_MAXIMO' => 'required|integer',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idInfo = $this->encController->decrypt($idInfo);
- if (is_null($idInfo)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExist = DB::table('S002V01TINST')
- ->where('INST_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INST_IDIS', '=', $idInfo)
- ->where('INST_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si existe el artículo.', $th->getMessage(), 500);
- }
- if (!$validateExist) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El artículo no existe.', [], 401);
- }
- try {
- $stockMin = intval($requestData['STOCK_MINIMO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error con el formato del stock mínimo.', $th->getMessage(), 500);
- }
- try {
- $stockMax = intval($requestData['STOCK_MAXIMO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error con el formato del stock mínimo.', $th->getMessage(), 500);
- }
- if ($stockMin < 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad del stock mínimo no debe ser menor a 0.', [], 401);
- }
- if ($stockMax < 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad del stock máximo no debe ser menos a 0.', [], 401);
- }
- if ($stockMin > $stockMax) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad del stock mínimo no debe ser mayos al stock máximo.', [], 401);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TINST')
- ->where('INST_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INST_IDIS', '=', $idInfo)
- ->where('INST_ESTA', '=', 'Activo')
- ->update([
- 'INST_STMI' => $stockMin,
- 'INST_STMA' => $stockMax,
- 'INST_USMO' => $user,
- 'INST_FEMO' => $currentDate,
- 'INST_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar el stock mínimo y máximo.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar el stock mínimo y máximo.', [], 401);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function updateReplenishment(Request $request) {
- $validator = Validator::make($request->all(), [
- 'id_stock' => 'required|string',
- 'replenishment' => 'required|integer',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idInfo = $this->encController->decrypt($requestData['id_stock']);
- if (is_null($idInfo)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExist = DB::table('S002V01TINST')->where([
- ['INST_NULI', '=', $requestData['NUMERO_LINEA']],
- ['INST_IDIS', '=', $idInfo],
- ['INST_ESTA', '=', 'Activo'],
- ])->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar si existe el artículo.', $th->getMessage(), 500);
- }
- if (!$validateExist) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El artículo no existe.', [], 401);
- }
- try {
- $replenishment = intval($requestData['replenishment']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error con el formato de la cantidad de reabastecimiento.', $th->getMessage(), 500);
- }
- if ($replenishment < 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'La cantidad de reabastecimiento no debe ser menor a 0.', [], 401);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TINST')->where([
- ['INST_NULI', '=', $requestData['NUMERO_LINEA']],
- ['INST_IDIS', '=', $idInfo],
- ['INST_ESTA', '=', 'Activo'],
- ])->update([
- 'INST_CARE' => $replenishment,
- 'INST_USMO' => $user,
- 'INST_FEMO' => $currentDate,
- 'INST_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar la cantidad de reabastecimiento.', $th->getMessage(), 500);
- }
-
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar la cantidad de reabastecimiento.', [], 401);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function getStockBarcode($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'STAR_COBA AS CODIGO_BARRA',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function updateStockBarcode(Request $request, $idStock) {
- $validator = Validator::make($request->all(), [
- 'BARCODE' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El número de stock no existe.', [], 500);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->update([
- 'STAR_COBA' => $requestData['BARCODE'],
- 'STAR_USMO' => $user,
- 'STAR_FEMO' => $currentDate,
- 'STAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error modificar el código de barra.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar el código de barra.', [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function getStockDueDate($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'STAR_FEVE AS FECHA_VENCIMIENTO',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- if (is_null($info['FECHA_VENCIMIENTO'])) {
- $arrStock[$key]['FECHA_VENCIMIENTO'] = 'Ninguno';
- }
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function updateDueDateStock(Request $request, $idStock) {
- $validator = Validator::make($request->all(), [
- 'FECHA_VENCIMIENTO' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El número de stock no existe.', [], 500);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateUpdate = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->update([
- 'STAR_FEVE' => $requestData['FECHA_VENCIMIENTO'],
- 'STAR_USMO' => $user,
- 'STAR_FEMO' => $currentDate,
- 'STAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error modificar la fecha de vencimiento.', $th->getMessage(), 500);
- }
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo modificar la fecha de vencimiento.', [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
- }
- public function getDescriptionSheetStock($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function createDescriptionSheetStockXLS($idStock, $user, $line) {
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID del Stock.', [], 401);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $arrStock = (array) DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $line)
- ->where('INST_NULI', '=', $line)
- ->where('UBAR_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('STAR_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->leftJoin('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->leftJoin('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->leftJoin('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->leftJoin('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->first([
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'STAR_IDST AS ID_STOCK',
- 'STAR_COBA AS CODIGO_BARRAS',
- 'STAR_FEVE AS FECHA_VENCIMIENTO',
- 'STAR_NUPR AS NUMERO_PROVEEDOR',
- 'PROV_NOCO AS PROVEEDOR',
- 'STAR_TIAD AS TIPO_ADQUISICION',
- 'STAR_CONS AS CONSUMIBLE',
- 'STAR_REPA AS REPARABLE',
- 'STAR_ESTA AS ESTADO',
- 'UBAR_IDUB AS ID_UBICACION',
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al recuperar la información.", $th->getMessage(), 500);
- }
- if (empty($arrStock) === 0) {
- return $this->responseController->makeResponse(true, "No se encontró información del stock.", [], 500);
- }
- $spreadsheet = new Spreadsheet();
- $activeWorksheet = $spreadsheet->getActiveSheet()->setTitle($arrStock['ID_STOCK']);
- $cell = 1;
- $activeWorksheet->setCellValue("A$cell", 'Código del Equipamiento');
- $activeWorksheet->setCellValue("B$cell", $arrStock['CODIGO_EQUIPAMIENTO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", 'Familia');
- $activeWorksheet->setCellValue("B$cell", $arrStock['FAMILIA'].' ('.$arrStock['CODIGO_FAMILIA'].')');
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", 'Subfamilia');
- $activeWorksheet->setCellValue("B$cell", $arrStock['SUBFAMILIA'].' ('.$arrStock['CODIGO_SUBFAMILIA'].')');
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
-
- $activeWorksheet->setCellValue("A$cell", 'Modelo');
- $activeWorksheet->setCellValue("B$cell", $arrStock['MODELO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", 'Código Modelo');
- $activeWorksheet->setCellValue("B$cell", $arrStock['CODIGO_MODELO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
-
- $activeWorksheet->setCellValue("A$cell", 'Tipo de Adquisición');
- $activeWorksheet->setCellValue("B$cell", $arrStock['TIPO_ADQUISICION']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- if (!is_null($arrStock['NUMERO_PROVEEDOR'])) {
- $activeWorksheet->setCellValue("A$cell", 'Proveedor');
- $activeWorksheet->setCellValue("B$cell", $arrStock['PROVEEDOR'].' ('.$arrStock['NUMERO_PROVEEDOR'].')');
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- }
- if (!is_null($arrStock['FECHA_VENCIMIENTO'])) {
- $activeWorksheet->setCellValue("A$cell", 'Fecha de Vencimiento');
- $activeWorksheet->setCellValue("B$cell", $arrStock['FECHA_VENCIMIENTO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- }
-
- $activeWorksheet->setCellValue("A$cell", 'Código de Barras');
- $activeWorksheet->setCellValue("B$cell", $arrStock['CODIGO_BARRAS']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
-
- if ( array_key_exists('TASA_ROTACION', $arrStock) ) {
- $activeWorksheet->setCellValue("A$cell", 'Tasa de Rotación');
- $activeWorksheet->setCellValue("B$cell", $arrStock['TASA_ROTACION']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- }
- $activeWorksheet->setCellValue("A$cell", 'Stock Mínimo');
- $activeWorksheet->setCellValue("B$cell", is_null($arrStock['STOCK_MINIMO']) ? 'Sin Definir' : $arrStock['STOCK_MINIMO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", 'Stock Máximo');
- $activeWorksheet->setCellValue("B$cell", is_null($arrStock['STOCK_MAXIMO']) ? 'Sin Definir' : $arrStock['STOCK_MAXIMO']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", '¿Es consumible?');
- $activeWorksheet->setCellValue("B$cell", $arrStock['CONSUMIBLE']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->setCellValue("A$cell", '¿Es reparable?');
- $activeWorksheet->setCellValue("B$cell", $arrStock['REPARABLE']);
- $activeWorksheet->getStyle( "A$cell" )->getFont()->setBold(true);
- $cell++;
- $activeWorksheet->getColumnDimension("A")->setAutoSize(true);
- $activeWorksheet->getColumnDimension("B")->setAutoSize(true);
- $nuli = $this->resourcesController->formatSecuence($line, 2);
- $como = 'GIST'; // Código del módulo
- $cldo = 'IN'; // Código de la clasificación
- $fecr = date('ymd'); // Fecha en la se carga el archivo
- try {
- $arrSecuence = (array) DB::table('S002V01TAFAL')
- ->where('AFAL_COMO', '=', $como)
- ->where('AFAL_CLDO', '=', $cldo)
- ->where('AFAL_NULI', '=', $line)
- ->orderBy('AFAL_NUSE', 'desc')
- ->first([ 'AFAL_NUSE' ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET020: Ocurrió un error al obtener la información de la secuencia.",
- $th->getMessage(),
- 500
- );
- }
- $nuse = 1; // Secuencia del documento
- if ( !empty( $arrSecuence ) && !is_null( $arrSecuence ) ) {
- $nuse = intval( $arrSecuence['AFAL_NUSE'] ) + 1;
- }
- $nuse = $this->resourcesController->formatSecuence($nuse, 6);
- $nuve = $this->resourcesController->formatSecuence('1', 2);
- $noar = 'ficha_de_stock_'.$arrStock['ID_STOCK'];
- $exte = 'xlsx';
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $filePath = $this->resourcesController->pathService.'\\public\\public_files\\'; // API JEAN
- } else {
- $filePath = $this->resourcesController->pathService.'\\public_files\\'; // API QA
- }
- $fileName = $nuli.'-'.$como.'-'.$cldo.'-'.$fecr.'-'.$nuse.'='.$nuve.'='.$noar.'.'.$exte;
- $tempFile = $filePath.$fileName;
- if ( file_exists( $tempFile ) ) {
- if ( !unlink( $tempFile ) ) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET021: Ocurrió un error al eliminar el siguiente archivo: " . $tempFile,
- [],
- 500
- );
- }
- }
-
- try {
- $writer = new Xlsx($spreadsheet);
- ob_start();
- $writer->save('php://output');
- $base64 = base64_encode(ob_get_clean());
- $validate = \File::put( $tempFile, base64_decode($base64));
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET022: Ocurrió un error al guardar el documento.",
- $th->getMessage(),
- 500
- );
- }
- $ubic = Storage::putFile('files', new File($tempFile));
- $ubic = str_replace("/", "\\", $ubic);
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $ubic = $this->resourcesController->pathService."\\storage\\app\\" . $ubic;
- } else {
- $ubic = $this->resourcesController->pathService."\\storage\\app\\" . $ubic;
- }
- $tama = filesize($ubic);
- $usac = json_encode([$user]);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TAFAL')->insert([
- 'AFAL_NULI' => $line,
- 'AFAL_COMO' => $como,
- 'AFAL_CLDO' => $cldo,
- 'AFAL_FECR' => $fecr,
- 'AFAL_NUSE' => $nuse,
- 'AFAL_NUVE' => $nuve,
- 'AFAL_NOAR' => $noar,
- 'AFAL_EXTE' => $exte,
- 'AFAL_TAMA' => $tama,
- 'AFAL_UBIC' => $ubic,
- 'AFAL_USAC' => $usac,
- 'AFAL_USRE' => $user,
- 'AFAL_FERE' => $currentDate,
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET023: Ocurrió un error guardar los datos a la tabla final de archivos.",
- $th->getMessage(),
- 500
- );
- }
- if ( !$validateInsert ) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET024: No se pudo guardar la ficha del proveedor en la base de datos.",
- [],
- 500
- );
- }
- $encCode = $this->encController->encrypt($fileName);
- try {
- $validateInsert = DB::table('S002V01TDOST')->insert([
- 'DOST_NULI' => $line,
- 'DOST_IDST' => $idStock,
- 'DOST_NODO' => 'Ficha de Stock #'.$arrStock['ID_STOCK'],
- 'DOST_CODO' => $encCode,
- 'DOST_EXTE' => $exte,
- 'DOST_TAMA' => $tama,
- 'DOST_CLAS' => 'IN',
- 'DOST_VERS' => 1,
- 'DOST_USRE' => $user,
- 'DOST_FERE' => $currentDate,
- 'DOST_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "Ocurrió un error guardar los datos a la tabla final de archivos.",
- $th->getMessage(),
- 500
- );
- }
- if (!$validateInsert) {
- return $this->responseController->makeResponse(
- true,
- "No se pudo guardar la ficha del proveedor en la base de datos.",
- [],
- 500
- );
- }
-
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $urlPublic = 'http://192.168.100.105:8000/public_files/' . $fileName;
- } else {
- $urlPublic = $this->functionsController->getApiURI().'sam/public_files/' . $fileName;
- }
- return $this->responseController->makeResponse(false, "EXITO: Modificación Exitosa", [ 'url' => $urlPublic ]);
- }
- public function createDescriptionSheetStockPDF($idStock, $user, $line) {
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID del Stock.', [], 401);
- }
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $arrStock = (array) DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $line)
- ->where('INST_NULI', '=', $line)
- ->where('UBAR_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('STAR_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->leftJoin('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->leftJoin('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->leftJoin('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->leftJoin('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->first([
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'STAR_IDST AS ID_STOCK',
- 'STAR_COBA AS CODIGO_BARRAS',
- 'STAR_FEVE AS FECHA_VENCIMIENTO',
- 'PROV_NUPR AS NUMERO_PROVEEDOR',
- 'PROV_NOCO AS PROVEEDOR',
- 'STAR_TIAD AS TIPO_ADQUISICION',
- 'STAR_CONS AS CONSUMIBLE',
- 'STAR_REPA AS REPARABLE',
- 'STAR_ESTA AS ESTADO',
- 'UBAR_IDUB AS ID_UBICACION',
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al recuperar la información.", $th->getMessage(), 500);
- }
- if (empty($arrStock) === 0) {
- return $this->responseController->makeResponse(true, "No se encontró información del stock.", [], 500);
- }
- $html = '<!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <style>
- body {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 8pt;
- }
- .section-title {
- margin: 20px 0;
- font-size: 12pt;
- }
- table {
- width: 100%;
- font-size: 8pt;
- }
- thead tr th {
- text-align: start;
- padding: 0 16px;
- height: 52px;
- border-bottom-width: 1px;
- border-bottom-style: solid;
- border-bottom-color: #CCC;
- }
- tbody tr td {
- padding: 0 16px;
- height: 52px;
- border-bottom-width: 1px;
- border-bottom-style: solid;
- border-bottom-color: #CCC;
- }
- p {
- text-align: justify;
- }
- </style>
- </head>
- <body>';
- $html.='<div class="item">
- <b>Código del Equipamiento</b>
- <span>'.$arrStock['CODIGO_EQUIPAMIENTO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Familia</b>
- <span>'.$arrStock['FAMILIA'].' ('.$arrStock['CODIGO_FAMILIA'].')'.'</span>
- </div>';
- $html.='<div class="item">
- <b>Subfamilia</b>
- <span>'.$arrStock['SUBFAMILIA'].' ('.$arrStock['CODIGO_SUBFAMILIA'].')'.'</span>
- </div>';
- $html.='<div class="item">
- <b>Modelo</b>
- <span>'.$arrStock['MODELO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Código Modelo</b>
- <span>'.$arrStock['CODIGO_MODELO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Tipo de Adquisición</b>
- <span>'.$arrStock['TIPO_ADQUISICION'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Proveedor</b>
- <span>'.$arrStock['PROVEEDOR'].' ('.$arrStock['NUMERO_PROVEEDOR'].')'.'</span>
- </div>';
- $html.='<div class="item">
- <b>Fecha de Vencimiento</b>
- <span>'.$arrStock['FECHA_VENCIMIENTO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Código de Barras</b>
- <span>'.$arrStock['CODIGO_BARRAS'].'</span>
- </div>';
- if ( array_key_exists('TASA_ROTACION', $arrStock) ) {
- $html.='<div class="item">
- <b>Tasa de Rotación</b>
- <span>'.$arrStock['TASA_ROTACION'].'</span>
- </div>';
- }
- $html.='<div class="item">
- <b>Stock Mínimo</b>
- <span>'.is_null($arrStock['STOCK_MINIMO']) ? 'Sin Definir' : $arrStock['STOCK_MINIMO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>Stock Máximo</b>
- <span>'.is_null($arrStock['STOCK_MAXIMO']) ? 'Sin Definir' : $arrStock['STOCK_MAXIMO'].'</span>
- </div>';
- $html.='<div class="item">
- <b>¿Es consumible?</b>
- <span>'.$arrStock['CONSUMIBLE'].'</span>
- </div>';
- $html.='<div class="item">
- <b>¿Es reparable?</b>
- <span>'.$arrStock['REPARABLE'].'</span>
- </div>';
- $html.='</body></html>';
- $nuli = $this->resourcesController->formatSecuence($line, 2);
- $como = 'GIST'; // Código del módulo
- $cldo = 'IN'; // Código de la clasificación
- $fecr = date('ymd'); // Fecha en la se carga el archivo
- try {
- $arrSecuence = (array) DB::table('S002V01TAFAL')
- ->where('AFAL_COMO', '=', $como)
- ->where('AFAL_CLDO', '=', $cldo)
- ->where('AFAL_NULI', '=', $line)
- ->orderBy('AFAL_NUSE', 'desc')
- ->first([ 'AFAL_NUSE' ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET020: Ocurrió un error al obtener la información de la secuencia.",
- $th->getMessage(),
- 500
- );
- }
- $nuse = 1; // Secuencia del documento
- if ( !empty( $arrSecuence ) && !is_null( $arrSecuence ) ) {
- $nuse = intval( $arrSecuence['AFAL_NUSE'] ) + 1;
- }
- $nuse = $this->resourcesController->formatSecuence($nuse, 6);
- $nuve = $this->resourcesController->formatSecuence('1', 2);
- $noar = 'ficha_de_adquisición_' . $arrStock['ID_STOCK'];
- $nuli = $this->resourcesController->formatSecuence($line, 2);
- $como = 'GIST'; // Código del módulo
- $cldo = 'IN'; // Código de la clasificación
- $fecr = date('ymd'); // Fecha en la se carga el archivo
- try {
- $arrSecuence = (array) DB::table('S002V01TAFAL')
- ->where('AFAL_COMO', '=', $como)
- ->where('AFAL_CLDO', '=', $cldo)
- ->where('AFAL_NULI', '=', $line)
- ->orderBy('AFAL_NUSE', 'desc')
- ->first([ 'AFAL_NUSE' ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET020: Ocurrió un error al obtener la información de la secuencia.",
- $th->getMessage(),
- 500
- );
- }
- $nuse = 1; // Secuencia del documento
- if ( !empty( $arrSecuence ) && !is_null( $arrSecuence ) ) {
- $nuse = intval( $arrSecuence['AFAL_NUSE'] ) + 1;
- }
- $nuse = $this->resourcesController->formatSecuence($nuse, 6);
- $nuve = $this->resourcesController->formatSecuence('1', 2);
- $noar = 'ficha_de_stock_' . $arrStock['ID_STOCK'];
- $exte = 'pdf';
-
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $filePath = $this->resourcesController->pathService.'\\public\\public_files\\'; // API JEAN
- } else {
- $filePath = $this->resourcesController->pathService.'\\public_files\\'; // API QA
- }
- $fileName = $nuli.'-'.$como.'-'.$cldo.'-'.$fecr.'-'.$nuse.'='.$nuve.'='.$noar.'.'.$exte;
- $tempFile = $filePath . $fileName;
- $dompdf = new Dompdf();
- $dompdf ->loadHtml($html);
- $dompdf->setPaper('A4', 'landscape');
- $dompdf->render();
- $output = $dompdf->output();
- file_put_contents($tempFile, $output);
- $ubic = Storage::putFile('files', new File($tempFile));
- $ubic = str_replace("/", "\\", $ubic);
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $ubic = $this->resourcesController->pathService."\\storage\\app\\" . $ubic;
- } else {
- $ubic = $this->resourcesController->pathService."\\storage\\app\\" . $ubic;
- }
- $tama = filesize($ubic);
- $usac = json_encode([$user]);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
-
- try {
- $validateInsert = DB::table('S002V01TAFAL')->insert([
- 'AFAL_NULI' => $line,
- 'AFAL_COMO' => $como,
- 'AFAL_CLDO' => $cldo,
- 'AFAL_FECR' => $fecr,
- 'AFAL_NUSE' => $nuse,
- 'AFAL_NUVE' => $nuve,
- 'AFAL_NOAR' => $noar,
- 'AFAL_EXTE' => $exte,
- 'AFAL_TAMA' => $tama,
- 'AFAL_UBIC' => $ubic,
- 'AFAL_USAC' => $usac,
- 'AFAL_USRE' => $user,
- 'AFAL_FERE' => $currentDate,
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET023: Ocurrió un error guardar los datos a la tabla final de archivos.",
- $th->getMessage(),
- 500
- );
- }
- if ( !$validateInsert ) {
- return $this->responseController->makeResponse(
- true,
- "ERR_PROVIDER_SHEET024: No se pudo guardar la ficha del proveedor en la base de datos.",
- [],
- 500
- );
- }
- $encCode = $this->encController->encrypt($fileName);
- try {
- $validateInsert = DB::table('S002V01TDOST')->insert([
- 'DOST_NULI' => $line,
- 'DOST_IDST' => $idStock,
- 'DOST_NODO' => 'Ficha de Stock #'.$arrStock['ID_STOCK'],
- 'DOST_CODO' => $encCode,
- 'DOST_EXTE' => $exte,
- 'DOST_TAMA' => $tama,
- 'DOST_CLAS' => 'IN',
- 'DOST_VERS' => 1,
- 'DOST_USRE' => $user,
- 'DOST_FERE' => $currentDate,
- 'DOST_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "Ocurrió un error guardar los datos a la tabla final de archivos.",
- $th->getMessage(),
- 500
- );
- }
- if (!$validateInsert) {
- return $this->responseController->makeResponse(
- true,
- "No se pudo guardar la ficha del proveedor en la base de datos.",
- [],
- 500
- );
- }
- if ($_SERVER['SERVER_NAME'] === '192.168.100.105') {
- $urlPublic = 'http://192.168.100.105:8000/public_files/' . $fileName;
- } else {
- $urlPublic = $this->functionsController->getApiURI().'sam/public_files/' . $fileName;
- }
- return $this->responseController->makeResponse(false, "EXITO: Modificación Exitosa", [ 'url' => $urlPublic ]);
- }
- public function getDocumentAssociation($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_IMAG AS IMAGENES',
- 'STAR_NUPR AS NUMERO_PROVEEDOR',
- 'STAR_TIAD AS TIPO_ADQUISICION',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $stock) {
- $arrImages = json_decode($stock['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- try {
- $count = DB::table('S002V01TDOST')
- ->where('DOST_IDST', '=', $stock['ID_STOCK'])
- ->where('DOST_NULI', '=', $line)
- ->where('DOST_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la cantidad de documentos.', $th->getMessage(), 500);
- }
- $arrStock[$key]['CANTIDAD_DOCUMENTOS'] = $count;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta ExitosaA", $arrStock);
- }
- public function getDocumentsByStock($idStock, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $stock = (array) DB::table('S002V01TUBAR')
- ->where([
- ['UBAR_IDST', '=', $idStock],
- ['UBAR_ESTA', '=', 'Activo'],
- ['UBAR_NULI', '=', $line],
- ])
- ->first([
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el código del equipamento del stock.', $th->getMessage(), 401);
- }
-
- if (is_null($stock)) {
- return $this->responseController->makeResponse(true, 'No se pudo obtener el código del equipamento del stock.', [], 401);
- }
- try {
- $equip = (array) DB::table('S002V01TEQUI')
- ->where([
- ['EQUI_COEQ', '=', $stock['CODIGO_EQUIPAMIENTO']],
- ['EQUI_NULI', '=', $line],
- ])
- ->first([
- 'EQUI_DORE AS DOCUMENTOS',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error obtener el códigos del documento del equipamiento.', $th->getMessage(), 401);
- }
- if (is_null($equip)) {
- return $this->responseController->makeResponse(true, 'No se pudo obtener el códigos del documento del equipamiento.', [], 401);
- }
- $arrDocuments = json_decode($equip['DOCUMENTOS'], true);
- $documentsFn = [];
- foreach($arrDocuments as $document){
- $codeArr = explode('=',$document);
- $codeArr0 = explode('-', $codeArr[0]);
- $file = DB::table('S002V01TAFAL')->where([
- ['AFAL_NULI', '=', $line],
- ['AFAL_COMO', '=', $codeArr0[1]],
- ['AFAL_CLDO', '=', $codeArr0[2]],
- ['AFAL_FECR', '=', $codeArr0[3]],
- ['AFAL_NUSE', '=', $codeArr0[4]],
- ['AFAL_NUVE', '=', $codeArr[1]],
- ])->first();
- if(is_null($file)){
- return $this->responseController->makeResponse(true, "El archivo $document no está registrado.", [], 404);
- }
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($this->encController->encrypt($document), $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], $responseDocument['response'], 500);
- }
- $url = $responseDocument['response']['public_uri'];
- $documentsFn[] = [
- 'ID' => $this->encController->encrypt($document),
- 'URL' => $url,
- 'DOCUMENTO' => $file->AFAL_NOAR,
- 'CLASIFICACION' => $this->resourcesController->arrClasificateDocument[$file->AFAL_CLDO],
- 'EXTENSION' => $file->AFAL_EXTE,
- 'VERSION' => $file->AFAL_NUVE,
- 'TAMANO' => $this->resourcesController->formatBytes($file->AFAL_TAMA),
- 'ESTADO' => $file->AFAL_ESTA,
- 'USUARIO_REGISTRA' => $file->AFAL_USRE,
- 'FECHA_REGISTRA' => $file->AFAL_FERE,
- 'USUARIO_MODIFICA' => $file->AFAL_USMO,
- 'FECHA_MODIFICA' => $file->AFAL_FEMO,
- ];
- }
- $stockDocuments = DB::table('S002V01TDOST')->select([
- 'DOST_CODO AS CODIGO_DOCUMENTO'
- ])->where([
- ['DOST_IDST', '=', $idStock],
- ['DOST_NULI', '=', $line],
- ])->get()->all();
- foreach($stockDocuments as $stockDocument){
- $codeDec = $this->encController->decrypt($stockDocument->CODIGO_DOCUMENTO);
- $codeArr0 = explode('.', $codeDec);
-
- if(count($codeArr0) == 2){
- $exte = $codeArr0[1];
- $codeArr1 = explode('=', $codeArr0[0]);
-
- if(count($codeArr1) == '3'){
- $noar = $codeArr1[2];
- $nuve = $codeArr1[1];
- $codeArr2 = explode('-', $codeArr1[0]);
- if(count($codeArr2) == 5){
- $como = $codeArr2[1];
- $cldo = $codeArr2[2];
- $fecr = $codeArr2[3];
- $nuse = $codeArr2[4];
- $documentBD = DB::table('S002V01TAFAL')->where([
- ['AFAL_NULI', '=', $line],
- ['AFAL_COMO', '=', $como],
- ['AFAL_CLDO', '=', $cldo],
- ['AFAL_FECR', '=', $fecr],
- ['AFAL_NUSE', '=', $nuse],
- ['AFAL_NUVE', '=', $nuve],
- ['AFAL_NOAR', '=', $noar],
- ['AFAL_EXTE', '=', $exte],
- ])->first();
- if(!is_null($documentBD)){
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($this->encController->encrypt($document), $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], $responseDocument['response'], 500);
- }
-
- $url = $responseDocument['response']['public_uri'];
- $documentsFn[] = [
- 'ID' => $this->encController->encrypt($stockDocument->CODIGO_DOCUMENTO),
- 'URL' => $url,
- 'DOCUMENTO' => $documentBD->AFAL_NOAR,
- 'CLASIFICACION' => $this->resourcesController->arrClasificateDocument[$documentBD->AFAL_CLDO],
- 'EXTENSION' => $documentBD->AFAL_EXTE,
- 'VERSION' => $documentBD->AFAL_NUVE,
- 'TAMANO' => $this->resourcesController->formatBytes($documentBD->AFAL_TAMA),
- 'ESTADO' => $documentBD->AFAL_ESTA,
- 'USUARIO_REGISTRA' => $documentBD->AFAL_USRE,
- 'FECHA_REGISTRA' => $documentBD->AFAL_FERE,
- 'USUARIO_MODIFICA' => $documentBD->AFAL_USMO,
- 'FECHA_MODIFICA' => $documentBD->AFAL_FEMO,
- ];
- }
- }
- }
- }
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($documentsFn, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $documentsFn = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "EXITO: Consulta Exitosa", $documentsFn);
- }
- public function registerDocumentStock(Request $request) {
- $valitador = Validator::make($request->all(), [
- 'ID_STOCK' => 'required|string',
- 'NOMBRE_ARCHIVO' => 'required|string',
- 'TIPO_ARCHIVO' => 'required|string',
- 'ARCHIVO' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($valitador->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_DOCUMENT_ORDER_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($valitador->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- try {
- $idFile = $this->encController->decrypt($requestData['ARCHIVO']);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_REG002: Ocurrió un error al desencriptar el documento.", $th->getMessage(), 401);
- }
- $tempFile = DB::table('S002V01TARTE')->where([
- ['ARTE_NULI', '=', $requestData['NUMERO_LINEA']],
- ['ARTE_IDAR', '=', $idFile],
- ])->first();
-
- if(is_null($tempFile)){
- return $this->responseController->makeResponse(true, 'ERR_DOCUMENT_ORDER_REG003: El archivo consultado no está registrado', [], 404);
- }else if($tempFile->ARTE_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'ERR_DOCUMENT_ORDER_REG004: El archivo consultado está eliminado', [], 404);
- }
- $fileResponse = $this->documentManagementController->moveFinalFile(
- intval($requestData['NUMERO_LINEA']),
- 'GEAD',
- $requestData['TIPO_ARCHIVO'],
- $tempFile,
- $user,
- );
- if(!$fileResponse[0]){
- return $this->responseController->makeResponse(true, 'ERR_DOCUMENT_ORDER_REG005: '.$fileResponse[1], [], 400);
- }
- $encCode = $this->encController->encrypt($fileResponse[1]);
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- var_dump($encCode);
- try {
- $validateInsert = DB::table('S002V01TDOST')->insert([
- 'DOST_NULI' => $requestData['NUMERO_LINEA'],
- 'DOST_IDST' => $requestData['ID_STOCK'],
- 'DOST_NODO' => $requestData['NOMBRE_ARCHIVO'],
- 'DOST_CODO' => $encCode,
- 'DOST_EXTE' => $tempFile->ARTE_EXTE,
- 'DOST_TAMA' => $tempFile->ARTE_TAMA,
- 'DOST_CLAS' => $requestData['TIPO_ARCHIVO'],
- 'DOST_VERS' => 1,
- 'DOST_USRE' => $user,
- 'DOST_FERE' => $currentDate,
- 'DOST_FEAR' => DB::raw('CURRENT_TIMESTAMP')
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "Ocurrió un error guardar los datos a la tabla final de archivos.",
- $th->getMessage(),
- 500
- );
- }
- if (!$validateInsert) {
- return $this->responseController->makeResponse(
- true,
- "No se pudo guardar la ficha del proveedor en la base de datos.",
- [],
- 500
- );
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro de Documento Exitoso");
- }
- public function getReplenishmentQuantitiesService($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_TIAD', '=', 'Por Pedido')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_IMAG AS IMAGENES',
- 'PROV_NUPR AS NUMERO_PROVEEDOR',
- 'PROV_NOCO AS NOMBRE_PROVEEDOR',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- $arrStock[$key]['CANTIDAD'] = 0;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function createRequestLine(Request $request) {
- $valitador = Validator::make($request->all(), [
- 'REQUEST_LINE' => 'required|array',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($valitador->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_DOCUMENT_ORDER_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($valitador->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $arrProviders = array();
- $arrRequestData = array();
- foreach ($requestData['REQUEST_LINE'] as $keyRequest => $request) {
- try {
- $validateInsert = DB::table('S002V01TCARE')->insert([
- 'CARE_NULI' => $requestData['NUMERO_LINEA'],
- 'CARE_IDST' => $request['ID_STOCK'],
- 'CARE_CAAD' => $request['CANTIDAD'],
- 'CARE_USRE' => $user,
- 'CARE_FERE' => $currentDate,
- 'CARE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al guar la información del reabastecimiento del stock.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo guardar los datos del reabastecimiento dentro de la base de datos.', [], 500);
- }
- try {
- $arrStock = (array) DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $request['ID_STOCK'])
- ->where('STAR_TIAD', '=', 'Por Pedido')
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->join('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->first([
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'FAMI_COFA AS FAMILIA',
- 'SUBF_COSU AS SUBFAMILIA',
- 'PROV_NUPR AS NUMERO_PROVEEDOR',
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- if (empty($arrStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se encontró la información del Stock', [], 500);
- }
- if ( !in_array($arrStock['NUMERO_PROVEEDOR'], $arrProviders) ) {
- $arrProviders[] = $arrStock['NUMERO_PROVEEDOR'];
- }
- $request['MODELO'] = $arrStock['MODELO'];
- $request['CODIGO_MODELO'] = $arrStock['CODIGO_MODELO'];
- $request['FAMILIA'] = $arrStock['FAMILIA'];
- $request['SUBFAMILIA'] = $arrStock['SUBFAMILIA'];
- $request['NUMERO_PROVEEDOR'] = $arrStock['NUMERO_PROVEEDOR'];
- try {
- $infoAdquisition = (array) DB::table('S002V01TINAR')
- ->where('INAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('INAR_CODI', '=', $arrStock['CODIGO_MODELO'])
- ->where('INAR_MODE', '=', $arrStock['MODELO'])
- ->where('INAR_ESTA', '=', 'Activo')
- ->where('DEAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('DEAR_NUPR', '=', $arrStock['NUMERO_PROVEEDOR'])
- ->where('DEAR_ESTA', '=', 'Activo')
- ->where('ARTI_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('ARTI_COFA', '=', $arrStock['FAMILIA'])
- ->where('ARTI_COSU', '=', $arrStock['SUBFAMILIA'])
- ->where('ARTI_ESTA', '=', 'Activo')
- ->join('S002V01TDEAR', 'DEAR_IDDE', '=', 'INAR_IDDE')
- ->join('S002V01TARTI', 'ARTI_IDAR', '=', 'DEAR_IDAR')
- ->first([
- 'ARTI_IDAR AS ID_ARTICULO',
- 'INAR_IDIN AS ID_INFORMACION',
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información de la adquisición.', $th->getMessage(), 500);
- }
- if (empty($infoAdquisition)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se encontró la información de la adquisición.', [], 500);
- }
- $request['ID_ARTICULO'] = $infoAdquisition['ID_ARTICULO'];
- $request['ID_INFORMACION'] = $infoAdquisition['ID_INFORMACION'];
- $arrRequestData[$keyRequest] = $request;
- }
-
- foreach ($arrProviders as $provider) {
- $contItemRequest = 1;
- foreach ($arrRequestData as $key => $value) {
- if ($provider === $value['NUMERO_PROVEEDOR']) {
-
- try {
- $idRequest = DB::table('S002V01TLINE')->insertGetId([
- 'LINE_NULI' => $requestData['NUMERO_LINEA'],
- 'LINE_NUPR' => $value['NUMERO_PROVEEDOR'],
- 'LINE_ESTA' => 'En espera',
- 'LINE_USRE' => $user,
- 'LINE_FERE' => $currentDate,
- 'LINE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al insertar la información en la línea de solicitud.', $th->getMessage(), 500);
- }
- if ($idRequest <= 0) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo insertar la información de la línea de solicitud.', [], 500);
- }
-
- for ($i=0; $i < $value['CANTIDAD']; $i++) {
- try {
- $validateInsert = DB::table('S002V01TARSE')->insert([
- 'ARSE_IDAS' => $contItemRequest,
- 'ARSE_IDLI' => $idRequest,
- 'ARSE_ESTA' => 'Activo',
- 'ARSE_NULI' => $requestData['NUMERO_LINEA'],
- 'ARSE_IDAR' => $value['ID_ARTICULO'],
- 'ARSE_NUPR' => $value['NUMERO_PROVEEDOR'],
- 'ARSE_IDIN' => $value['ID_INFORMACION'],
- 'ARSE_USRE' => $user,
- 'ARSE_FERE' => $currentDate,
- 'ARSE_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al insertar los artículos en la línea de solicitud.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo insertar los artículos en la línea de solicitud.', [], 500);
- }
- $contItemRequest++;
- }
- }
- }
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function getReplenishmentSuggestion($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrInfoStock = DB::table('S002V01TINST')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->leftJoin('S002V01TSTAR', 'STAR_IDIS', '=', 'INST_IDIS')
- ->get([
- 'INST_IDIS AS ID_INFORMACION_STOCK',
- 'STAR_IDST AS ID_STOCK',
- DB::raw('CONCAT(FAMI_NOFA, " (", FAMI_COFA, ")") AS FAMILIA'),
- DB::raw('CONCAT(SUBF_NOSU, " (", SUBF_COSU, ")") AS SUBFAMILIA'),
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'STAR_NUPR AS NUMERO_PROVEEDOR',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrInfoStock = json_decode(json_encode($arrInfoStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- $arrDataStock = array();
- foreach ($arrInfoStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrInfoStock[$key]['IMAGENES'] = $arrUrlImage;
- try {
- $countStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_IDIS', '=', $info['ID_INFORMACION_STOCK'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->count();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el stock.', $th->getMessage(), 500);
- }
- $arrInfoStock[$key]['CANTIDAD_ACTUAL'] = $countStock;
-
- if ($countStock < $info['STOCK_MINIMO'] && !is_null($info['STOCK_MINIMO'])) {
- $arrInfoStock[$key]['ESTADO'] = 'Menor al Stock Requerido';
- $arrInfoStock[$key]['CANTIDAD_SUGERIDA'] = $info['STOCK_MINIMO'] - $countStock;
- $arrDataStock[] = $arrInfoStock[$key];
- }
- }
- try {
- $arrReplanishment = DB::table('S002V01TCARE')
- ->where('CARE_NULI', '=', $line)
- ->where('CARE_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TSTAR', 'STAR_IDST', '=', 'CARE_IDST')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->orderBy('CARE_CAAD', 'DESC')
- ->limit(5)
- ->get([
- 'INST_IDIS AS ID_INFORMACION_STOCK',
- 'STAR_IDST AS ID_STOCK',
- DB::raw('CONCAT(FAMI_NOFA, " (", FAMI_COFA, ")") AS FAMILIA'),
- DB::raw('CONCAT(SUBF_NOSU, " (", SUBF_COSU, ")") AS SUBFAMILIA'),
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'STAR_NUPR AS NUMERO_PROVEEDOR',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'INST_IMAG AS IMAGENES',
- 'CARE_CAAD AS CANTIDAD_SUGERIDA',
- ]);
- $arrReplanishment = json_decode(json_encode($arrReplanishment), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el reabastecimiento.', $th->getMessage(), 500);
- }
- foreach ($arrReplanishment as $key => $replanishment) {
- $arrImages = json_decode($replanishment['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrReplanishment[$key]['IMAGENES'] = $arrUrlImage;
- $arrReplanishment[$key]['ESTADO'] = 'Stock habitualmente pedido';
- }
- // Se verifica los campos repetidos
- $arrIdDataStock = array_column($arrDataStock, 'ID_INFORMACION_STOCK');
- $arrIdReplanishment = array_column($arrReplanishment, 'ID_INFORMACION_STOCK');
- $arrRepeated = array_merge($arrIdDataStock, $arrIdReplanishment);
- $arrUnique = array_unique($arrRepeated);
- $arrValues = array_values($arrUnique);
- // Se unen con los estados para el resultado final
- $arrFinal = array();
- foreach ($arrValues as $key => $value) {
-
- foreach ($arrDataStock as $dataStock) {
- if ($dataStock['ID_INFORMACION_STOCK'] === $value) {
- $arrFinal[$key] = $dataStock;
- }
- }
- foreach ($arrReplanishment as $replanishment) {
- if ($replanishment['ID_INFORMACION_STOCK'] === $value) {
- if (array_key_exists($key, $arrFinal)) {
- $arrFinal[$key]['ESTADO'] .= ' | '.$replanishment['ESTADO'];
- } else {
- $arrFinal[$key] = $replanishment;
- }
- }
- }
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFinal);
- }
- public function getNomenclatureManagement($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_TIAD', '=', 'Por Pedido')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'INST_IMAG AS IMAGENES',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function getDetailsNomenclature($idStock, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'El número de stock no existe.', [], 500);
- }
- try {
- $info = (array) DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_TIAD', '=', 'Por Pedido')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->leftJoin('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->leftJoin('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->leftJoin('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->leftJoin('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->leftJoin('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->first([
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (empty($info)) {
- return $this->responseController->makeResponse(true, 'No se encontró la información del código.', [], 500);
- }
- $codeEquipment = $info['CODIGO_EQUIPAMIENTO'];
- $arrStructureCode = explode('_', $codeEquipment);
- if ( count($arrStructureCode) !== 2 ) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la estructura del código.' [], 500);
- }
- $strLBS = $arrStructureCode[0];
- $arrStructureLBS = explode('.', $strLBS);
- if (count($arrStructureLBS) !== 4) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la estructura del LBS.' [], 500);
- }
- $levelOccupation = $arrStructureLBS[2];
- $arrStructureLevelOccupation = explode('-', $levelOccupation);
- if (count($arrStructureLevelOccupation) !== 2) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el nivel y la ocupación.', [], 500);
- }
- $codeSite = $arrStructureLBS[0];
- $codeLocation = $arrStructureLBS[1];
- $codeElement = $arrStructureLBS[3];
- $codeLevel = $arrStructureLevelOccupation[0];
- $codeOccupation = $arrStructureLevelOccupation[1];
- $strPBS = $arrStructureCode[1];
-
- $arrStructurePBS = explode('.', $strPBS);
- if ( count($arrStructurePBS) !== 4 ) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la estructura del PBS.', [], 500);
- }
- $typeModel = $arrStructurePBS[3];
- $arrStructureTypeModel = explode('-', $typeModel);
- if (count($arrStructureTypeModel) !== 3) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener tipo y modelo.', [], 500);
- }
- $codeFamily = $arrStructurePBS[0];
- $codeSubfamily = $arrStructurePBS[1];
- $codeState = $arrStructurePBS[2];
- $codeType = $arrStructureTypeModel[0];
- $codeModel = $arrStructureTypeModel[1];
- $arrClaves = array(
- 'CLAVE_SITIO' => $codeSite,
- 'SITIO' => 'Número de Línea 01',
- 'CLAVE_UBICACION' => $codeLocation,
- 'UBICACION' => $info['NOMBRE_AREA'],
- 'CLAVE_POSICION' => $codeElement,
- 'POSICION' => $info['NOMBRE_NIVEL'],
- 'CLAVE_OCUPACION' => $codeLevel,
- 'OCUPACION' => $info['NOMBRE_ALMACEN'],
- 'CLAVE_ELEMENTO' => $codeOccupation,
- 'ELEMENTO' => $info['NOMBRE_ZONA'],
- 'CLAVE_FAMILIA' => $codeFamily,
- 'FAMILIA' => $info['FAMILIA'],
- 'CLAVE_SUBFAMILIA' => $codeSubfamily,
- 'SUBFAMILIA' => $info['SUBFAMILIA'],
- 'CLAVE_ESTADO' => $codeState,
- 'ESTADO' => $this->resourcesController->arrStatesEquipment[$codeState],
- 'CLAVE_TIPO' => $codeType,
- 'TIPO' => $info['MODELO'],
- 'CLAVE_MODELO' => $codeModel,
- 'MODELO' => $info['CODIGO_MODELO'],
- );
-
- return $this->responseController->makeResponse(false, 'ÉXITO: Consulta Exitosa.', $arrClaves);
- }
- public function getObjectProperties($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TSTAR')
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'INST_IMAG AS IMAGENES',
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS SUBFAMILIA',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del stock.', $th->getMessage(), 500);
- }
- foreach ($arrStock as $key => $info) {
- $arrImages = json_decode($info['IMAGENES']);
- $arrUrlImage = array();
- foreach ($arrImages as $keyImages => $images) {
- $images = $this->encController->encrypt($images);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrUrlImage[] = $responseDocument['response']['public_uri'];
- }
- $arrStock[$key]['IMAGENES'] = $arrUrlImage;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrStock);
- }
- public function getDetailsObjectProperties($idStock, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- return $this->responseController->makeResponse(true, 'El número de stock no existe.', [], 500);
- }
- try {
- $arrStock = (array) DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $line)
- ->where('STAR_ESTA', '=', 'Activo')
- ->where('INST_NULI', '=', $line)
- ->where('INST_ESTA', '=', 'Activo')
- ->where('UBAR_NULI', '=', $line)
- ->where('UBAR_ESTA', '=', 'Activo')
- ->where('FAMI_NULI', '=', $line)
- ->where('FAMI_ESTA', '=', 'Activo')
- ->where('SUBF_NULI', '=', $line)
- ->where('SUBF_ESTA', '=', 'Activo')
- ->join('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->join('S002V01TUBAR', 'UBAR_IDST', '=', 'STAR_IDST')
- ->join('S002V01TFAMI', 'FAMI_COFA', '=', 'INST_COFA')
- ->join('S002V01TSUBF', 'SUBF_COSU', '=', 'INST_COSU')
- ->join('S002V01TALMA', 'ALMA_COAL', '=', 'UBAR_COAL')
- ->join('S002V01TAREA', 'AREA_COAR', '=', 'UBAR_COAR')
- ->join('S002V01TNIVE', 'NIVE_CONI', '=', 'UBAR_CONI')
- ->join('S002V01TZONA', 'ZONA_COZO', '=', 'UBAR_COZO')
- ->first([
- 'STAR_COBA AS CODIGO_BARRA',
- 'STAR_FEVE AS FECHA_VENCIMIENTO',
- 'STAR_NUPR AS NUMERO_PROVEEDOR',
- 'STAR_TIAD AS TIPO_ADQUISICION',
- 'STAR_CONS AS CONSUMIBLE',
- 'STAR_REPA AS REPARABLE',
- 'STAR_ALTO AS ALTO',
- 'STAR_ANCH AS ANCHO',
- 'STAR_LARG AS LARGO',
- 'STAR_COLO AS COLOR',
- 'STAR_PRAD AS PRECIO_ADQUIRIDO',
- 'STAR_COMO AS CODIGO_MONEDA',
- 'INST_MODE AS MODELO',
- 'INST_COMO AS CODIGO_MODELO',
- 'INST_STMI AS STOCK_MINIMO',
- 'INST_STMA AS STOCK_MAXIMO',
- 'STAR_NIPE AS NIVEL_PELIGROSIDAD',
- 'INST_IMAG AS IMAGENES',
- 'UBAR_COUB AS CODIGO_EQUIPAMIENTO',
- 'FAMI_COFA AS CODIGO_FAMILIA',
- 'FAMI_NOFA AS NOMBRE_FAMILIA',
- 'SUBF_COSU AS CODIGO_SUBFAMILIA',
- 'SUBF_NOSU AS NOMBRE_SUBFAMILIA',
- 'ALMA_COAL AS CODIGO_ALMACEN',
- 'ALMA_NOAL AS NOMBRE_ALMACEN',
- 'AREA_COAR AS CODIGO_AREA',
- 'AREA_NOAR AS NOMBRE_AREA',
- 'NIVE_CONI AS CODIGO_NIVEL',
- 'NIVE_NONI AS NOMBRE_NIVEL',
- 'ZONA_COZO AS CODIGO_ZONA',
- 'ZONA_NOZO AS NOMBRE_ZONA',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los datos del stock.', $th->getMessage(), 500);
- }
- if (empty($arrStock)) {
- return $this->responseController->makeResponse(true, 'No existe información de stock.', [], 500);
- }
-
- $arrImages = array();
- $arrImagesTemp = json_decode($arrStock['IMAGENES']);
- foreach ($arrImagesTemp as $key => $value) {
- $images = $this->encController->encrypt($value);
- $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($images, $user, $line);
- if ($responseDocument['error']) {
- return $this->responseController->makeResponse(true, $responseDocument['msg'], [], 500);
- }
- $arrImages[] = $responseDocument['response']['public_uri'];
- }
- $arrStock['IMAGENES'] = $arrImages;
- if($arrStock['TIPO_ADQUISICION'] == 'Sin Pedido'){
- $arrStock['DESCRIPCION_PROVEEDOR'] = null;
- $arrStock['CARACTERISTICA_PROVEEDOR'] = null;
- $arrStock['NOMBRE_PROVEEDOR'] = null;
- goto noAdquisition;
- }
-
- try {
- $infoAdquisition = (array) DB::table('S002V01TINAR')
- ->where('INAR_NULI', '=', $line)
- ->where('INAR_CODI', '=', $arrStock['CODIGO_MODELO'])
- ->where('INAR_MODE', '=', $arrStock['MODELO'])
- ->where('INAR_ESTA', '=', 'Activo')
- ->where('DEAR_NULI', '=', $line)
- ->where('DEAR_NUPR', '=', $arrStock['NUMERO_PROVEEDOR'])
- ->where('DEAR_ESTA', '=', 'Activo')
- ->where('ARTI_NULI', '=', $line)
- ->where('ARTI_COFA', '=', $arrStock['CODIGO_FAMILIA'])
- ->where('ARTI_COSU', '=', $arrStock['CODIGO_SUBFAMILIA'])
- ->where('ARTI_ESTA', '=', 'Activo')
- ->leftJoin('S002V01TDEAR', 'DEAR_IDDE', '=', 'INAR_IDDE')
- ->leftJoin('S002V01TARTI', 'ARTI_IDAR', '=', 'DEAR_IDAR')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'DEAR_NUPR')
- ->first([
- 'DEAR_DESC AS DESCRIPCION_PROVEEDOR',
- 'DEAR_CARA AS CARACTERISTICA_PROVEEDOR',
- 'PROV_NOCO AS NOMBRE_PROVEEDOR',
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información de la adquisición.', $th->getMessage(), 500);
- }
- if (empty($infoAdquisition)) {
- /*DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se encontró la información de la adquisición.', [], 500);*/
- $infoAdquisition = [
- "DESCRIPCION_PROVEEDOR" => '-',
- "CARACTERISTICA_PROVEEDOR" => '-',
- "NOMBRE_PROVEEDOR" => '-',
- ];
- }
- $arrGeneralInfo = array_merge($arrStock, $infoAdquisition);
- return $this->responseController->makeResponse(false, 'ÉXITO: Consulta Exitosa', $arrGeneralInfo);
- noAdquisition:
- return $this->responseController->makeResponse(false, 'ÉXITO: Consulta Exitosa', $arrStock);
- }
- public function saveInfoStock(Request $request, $idStock) {
- $valitador = Validator::make($request->all(), [
- 'ALTO' => 'string|nullable',
- 'ANCHO' => 'string|nullable',
- 'LARGO' => 'string|nullable',
- 'COLOR' => 'string|nullable',
- 'NIVEL_PELIGROSIDAD' => 'string|nullable',
- 'TASA_ROTACION' => 'string|nullable',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($valitador->fails()) {
- return $this->responseController->makeResponse(
- true,
- "ERR_DOCUMENT_ORDER_REG000: Se encontraron uno o más errores.",
- $this->responseController->makeErrors($valitador->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idStock = $this->encController->decrypt($idStock);
- if (is_null($idStock)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el ID de la información.', [], 401);
- }
- try {
- $validateExists = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al verificar el ID del stock.', $th->getMessage(), 500);
- }
- if (!$validateExists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'El número de stock no existe.', [], 500);
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- try {
- $validateInsert = DB::table('S002V01TSTAR')
- ->where('STAR_IDST', '=', $idStock)
- ->where('STAR_NULI', '=', $requestData['NUMERO_LINEA'])
- ->where('STAR_ESTA', '=', 'Activo')
- ->update([
- 'STAR_ALTO' => $requestData['ALTO'],
- 'STAR_ANCH' => $requestData['ANCHO'],
- 'STAR_LARG' => $requestData['LARGO'],
- 'STAR_COLO' => $requestData['COLOR'],
- 'STAR_NIPE' => $requestData['NIVEL_PELIGROSIDAD'],
- 'STAR_USMO' => $user,
- 'STAR_FEMO' => $currentDate,
- 'STAR_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al insertar los datos del stock.', $th->getMessage(), 500);
- }
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'No se pudo insertar los datos del stock.', [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, 'ÉXITO: Registro Exitoso');
- }
- public function getToolsAndSpare ($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrStock = DB::table('S002V01TINST')
- ->where([
- ['INST_NULI', '=', $line],
- ])->get([
- 'INST_IDIS AS ID',
- 'INST_MODE AS NOMB',
- 'INST_COMO AS MODE',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los artículos en stock.', $th->getMessage(), 500);
- }
- $arrTools = [];
- $arrSpares = [];
- foreach ($arrStock as $stock) {
- try {
- $idStockStr = "" . $stock["ID"] . "";
- for($i = strlen($idStockStr); $i < 10; $i++){
- $idStockStr = "0" . $idStockStr;
- }
- $items = DB::table('S002V01TSTAR')
- ->where([
- ['STAR_NULI', '=', $line],
- ['STAR_IDIS', '=', $idStockStr],
- ])
- ->leftJoin('S002V01TUNID', 'UNID_IDUN', '=', 'STAR_IDUN')
- ->get([
- 'UNID_NOMB AS UNIT',
- 'STAR_CONS AS TYPE',
- ]);
- $items = json_decode(json_encode($items), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los datos de las herramientas y refacciones.', $th->getMessage(), 500);
- }
-
- $stock['CANTDISP'] = count($items);
- foreach ($items as $item) {
- if ($item['TYPE'] === 'Si') {
- $stock['TYPE'] = 'Refaccción';
- } else {
- $stock['TYPE'] = 'Herramienta';
- }
- $stock['UNIT'] = $item['UNIT'];
- }
- $stock['ID'] = $this->encController->encrypt("{$stock['ID']}");
- if ($stock['TYPE'] === 'Refaccción') {
- $arrSpares[] = $stock;
- } else {
- $arrTools[] = $stock;
- }
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", [ 'HERRAMIENTAS' => $arrTools, 'REFACCIONES' => $arrSpares ]);
- }
- public function getArticleClassificateByWarehouse ($idWarehouse, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
-
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- if (is_null($idWarehouse)) {
- return $this->responseController->makeResponse(true, "El identificador del almancen no fue encritpado correctamente", [], 500);
- }
- try {
- $arrStock = DB::table('S002V01TUBAR')
- ->where([
- ['UBAR_COAL', '=', $idWarehouse],
- ['UBAR_ESTA', '=', 'Activo'],
- ['UBAR_NULI', '=', $line],
- ['STAR_ESTA', '=', 'Activo'],
- ])
- ->leftJoin('S002V01TSTAR', 'STAR_IDST', '=', 'UBAR_IDST')
- ->leftJoin('S002V01TINST', 'INST_IDIS', '=', 'STAR_IDIS')
- ->leftJoin('S002V01TPROV', 'PROV_NUPR', '=', 'STAR_NUPR')
- ->leftJoin('S002V01TINAR', function($join) {
- $join->on('INAR_CODI', '=', 'INST_COMO')
- ->on('INAR_MODE', '=', 'INST_MODE');
- })
- ->get([
- 'STAR_IDST AS ID_STOCK',
- 'PROV_NUPR AS NUMERO_PROVEEDOR',
- 'PROV_NOCO AS PROVEEDOR',
- 'INST_IDIS AS ID_INFORMACION',
- 'INST_MODE AS TIPO_EQUIPAMIENTO',
- 'INST_COMO AS MODELO_EQUIPAMIENTO',
- 'INAR_PREC AS PRECIO',
- 'INAR_COMO AS MONEDA',
- 'STAR_FERE AS FECHA_ADQUISICION',
- ]);
- $arrStock = json_decode(json_encode($arrStock), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al obtener la información del almacen.", $th->getMessage(), 500);
- }
- $dateOneYearAgo = Carbon::now()->subYears(1);
- $dateHalfYearAgo = Carbon::now()->subMonth(6);
- $dateOneMonthAgo = Carbon::now()->subMonth(1);
- $arrClassificateOneYearAgo = [];
- $arrClassificateHalfYearAgo = [];
- $arrClassificateOneMonthAgo = [];
- $arrClassificate = [];
- foreach ($arrStock as $stock) {
- $providerExists = in_array($stock['NUMERO_PROVEEDOR'], array_column($arrClassificateOneYearAgo, 'NUMERO_PROVEEDOR'));
- $typeExists = in_array($stock['TIPO_EQUIPAMIENTO'], array_column($arrClassificateOneYearAgo, 'TIPO_EQUIPAMIENTO'));
- $modelExists = in_array($stock['MODELO_EQUIPAMIENTO'], array_column($arrClassificateOneYearAgo, 'MODELO_EQUIPAMIENTO'));
- if ($providerExists && $typeExists && $modelExists) {
- $index = array_search($stock['ID_INFORMACION'], array_column($arrClassificateOneYearAgo, 'ID_INFORMACION'));
- $arrClassificateOneYearAgo[$index]['CANTIDAD'] += 1;
- } else {
- $dateAdquisition = new Carbon($stock['FECHA_ADQUISICION']);
- if ($dateAdquisition->gte($dateOneYearAgo)) {
- $arrClassificateOneYearAgo[] = [
- 'ID_INFORMACION' => $stock['ID_INFORMACION'],
- 'NUMERO_PROVEEDOR' => $stock['NUMERO_PROVEEDOR'],
- 'PROVEEDOR' => $stock['PROVEEDOR'],
- 'TIPO_EQUIPAMIENTO' => $stock['TIPO_EQUIPAMIENTO'],
- 'MODELO_EQUIPAMIENTO' => $stock['MODELO_EQUIPAMIENTO'],
- 'PRECIO' => $stock['PRECIO'],
- 'MONEDA' => $stock['MONEDA'],
- 'FECHA_ADQUISICION' => $stock['FECHA_ADQUISICION'],
- 'CANTIDAD' => 1,
- ];
- }
- }
- $providerExists = in_array($stock['NUMERO_PROVEEDOR'], array_column($arrClassificateHalfYearAgo, 'NUMERO_PROVEEDOR'));
- $typeExists = in_array($stock['TIPO_EQUIPAMIENTO'], array_column($arrClassificateHalfYearAgo, 'TIPO_EQUIPAMIENTO'));
- $modelExists = in_array($stock['MODELO_EQUIPAMIENTO'], array_column($arrClassificateHalfYearAgo, 'MODELO_EQUIPAMIENTO'));
- if ($providerExists && $typeExists && $modelExists) {
- $index = array_search($stock['ID_INFORMACION'], array_column($arrClassificateHalfYearAgo, 'ID_INFORMACION'));
- $arrClassificateHalfYearAgo[$index]['CANTIDAD'] += 1;
- } else {
- $dateAdquisition = new Carbon($stock['FECHA_ADQUISICION']);
- if ($dateAdquisition->gte($dateHalfYearAgo)) {
- $arrClassificateHalfYearAgo[] = [
- 'ID_INFORMACION' => $stock['ID_INFORMACION'],
- 'NUMERO_PROVEEDOR' => $stock['NUMERO_PROVEEDOR'],
- 'PROVEEDOR' => $stock['PROVEEDOR'],
- 'TIPO_EQUIPAMIENTO' => $stock['TIPO_EQUIPAMIENTO'],
- 'MODELO_EQUIPAMIENTO' => $stock['MODELO_EQUIPAMIENTO'],
- 'PRECIO' => $stock['PRECIO'],
- 'MONEDA' => $stock['MONEDA'],
- 'FECHA_ADQUISICION' => $stock['FECHA_ADQUISICION'],
- 'CANTIDAD' => 1,
- ];
- }
- }
- $providerExists = in_array($stock['NUMERO_PROVEEDOR'], array_column($arrClassificateOneMonthAgo, 'NUMERO_PROVEEDOR'));
- $typeExists = in_array($stock['TIPO_EQUIPAMIENTO'], array_column($arrClassificateOneMonthAgo, 'TIPO_EQUIPAMIENTO'));
- $modelExists = in_array($stock['MODELO_EQUIPAMIENTO'], array_column($arrClassificateOneMonthAgo, 'MODELO_EQUIPAMIENTO'));
- if ($providerExists && $typeExists && $modelExists) {
- $index = array_search($stock['ID_INFORMACION'], array_column($arrClassificateOneMonthAgo, 'ID_INFORMACION'));
- $arrClassificateOneMonthAgo[$index]['CANTIDAD'] += 1;
- } else {
- $dateAdquisition = new Carbon($stock['FECHA_ADQUISICION']);
- if ($dateAdquisition->gte($dateOneMonthAgo)) {
- $arrClassificateOneMonthAgo[] = [
- 'ID_INFORMACION' => $stock['ID_INFORMACION'],
- 'NUMERO_PROVEEDOR' => $stock['NUMERO_PROVEEDOR'],
- 'PROVEEDOR' => $stock['PROVEEDOR'],
- 'TIPO_EQUIPAMIENTO' => $stock['TIPO_EQUIPAMIENTO'],
- 'MODELO_EQUIPAMIENTO' => $stock['MODELO_EQUIPAMIENTO'],
- 'PRECIO' => $stock['PRECIO'],
- 'MONEDA' => $stock['MONEDA'],
- 'FECHA_ADQUISICION' => $stock['FECHA_ADQUISICION'],
- 'CANTIDAD' => 1,
- ];
- }
- }
- $providerExists = in_array($stock['NUMERO_PROVEEDOR'], array_column($arrClassificate, 'NUMERO_PROVEEDOR'));
- $typeExists = in_array($stock['TIPO_EQUIPAMIENTO'], array_column($arrClassificate, 'TIPO_EQUIPAMIENTO'));
- $modelExists = in_array($stock['MODELO_EQUIPAMIENTO'], array_column($arrClassificate, 'MODELO_EQUIPAMIENTO'));
- if ($providerExists && $typeExists && $modelExists) {
- $index = array_search($stock['ID_INFORMACION'], array_column($arrClassificate, 'ID_INFORMACION'));
- $arrClassificate[$index]['CANTIDAD'] += 1;
- } else {
- $arrClassificate[] = [
- 'ID_INFORMACION' => $stock['ID_INFORMACION'],
- 'NUMERO_PROVEEDOR' => $stock['NUMERO_PROVEEDOR'],
- 'PROVEEDOR' => $stock['PROVEEDOR'],
- 'TIPO_EQUIPAMIENTO' => $stock['TIPO_EQUIPAMIENTO'],
- 'MODELO_EQUIPAMIENTO' => $stock['MODELO_EQUIPAMIENTO'],
- 'PRECIO' => $stock['PRECIO'],
- 'MONEDA' => $stock['MONEDA'],
- 'FECHA_ADQUISICION' => $stock['FECHA_ADQUISICION'],
- 'CANTIDAD' => 1,
- ];
- }
- }
- foreach ($arrClassificate as $key => $classificate) {
- foreach ($arrClassificateOneYearAgo as $classificateTemp) {
- if ($classificate['ID_INFORMACION'] === $classificateTemp['ID_INFORMACION']) {
- $classificate['TASA_ROTACION_ANUAL'] = ($classificateTemp['PRECIO'] * $classificateTemp['CANTIDAD']) / $classificate['CANTIDAD'];
- }
- }
- foreach ($arrClassificateHalfYearAgo as $classificateTemp) {
- if ($classificate['ID_INFORMACION'] === $classificateTemp['ID_INFORMACION']) {
- $classificate['TASA_ROTACION_SEMESTRAL'] = ($classificateTemp['PRECIO'] * $classificateTemp['CANTIDAD']) / $classificate['CANTIDAD'];
- }
- }
- foreach ($arrClassificateOneMonthAgo as $classificateTemp) {
- if ($classificate['ID_INFORMACION'] === $classificateTemp['ID_INFORMACION']) {
- $classificate['TASA_ROTACION_MENSUAL'] = ($classificateTemp['PRECIO'] * $classificateTemp['CANTIDAD']) / $classificate['CANTIDAD'];
- }
- }
- $classificate['PROVEEDOR'] = "{$classificate['PROVEEDOR']} ({$classificate['NUMERO_PROVEEDOR']})";
- $arrClassificate[$key] = $classificate;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrClassificate);
- }
- public function getValueStockByPeriod ($idWarehouse, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $idWarehouse = $this->encController->decrypt($idWarehouse);
- if (is_null($idWarehouse)) {
- return $this->responseController->makeResponse(true, "El identificador del almancen no fue encritpado correctamente", [], 500);
- }
- try {
- $arrInformation = DB::table('S002V01TVAST')
- ->where([
- ['VAST_COAL', '=', $idWarehouse],
- ['VAST_NULI', '=', $line],
- ['VAST_ESTA', '=', 'Estado'],
- ])
- ->get([
- 'VAST_IDVS AS ID_VALOR',
- 'VAST_INME AS INFORMACION_VALOR',
- 'VAST_PERI AS PERIODO',
- 'VAST_FERE AS USUARIO_REGISTRA',
- 'VAST_USRE AS FECHA_REGISTRA',
- 'VAST_FEMO AS USUARIO_MODIFICA',
- 'VAST_USMO AS FECHA_MODIFICA',
- ]);
- $arrInformation = json_decode(json_encode($arrInformation), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "", $th->getMessage(), 500);
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrInformation, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrInformation = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrInformation);
- }
- public function getArticlesWithoutMovements($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrArticles = DB::table('S002V01TUBAR')
- ->where([
- ['UBAR_NULI', '=', $line],
- ['UBAR_ESTA', '=', 'Activo'],
- ])
- ->distinct('UBAR_IDST')
- ->orderBy('UBAR_FERE', 'DESC')
- ->get([
- 'UBAR_IDST AS ID_STOCK',
- 'UBAR_FERE AS FECHA_REGISTRA',
- 'UBAR_USRE AS USUARIO_REGISTRA',
- 'UBAR_FEMO AS FECHA_MODIFICA',
- 'UBAR_USMO AS USUARIO_MODIFICA',
- ]);
- $arrArticles = json_decode(json_encode($arrArticles), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los artículos.', $th->getMessage(), 401);
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrArticles, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrArticles = $responseCheckLatestUpdate['response'];
- $currentDate = Carbon::now();
- foreach ($arrArticles as $key => $article) {
- $dateStock = new Carbon($article['FECHA_MODIFICA']);
- $diff = $currentDate->diff($dateStock);
- $article['DIFERENCIA_ANIOS'] = $diff->y;
- $article['DIFERENCIA_MES'] = $diff->m;
- $article['DIFERENCIA_DIAS'] = $diff->d;
- $arrArticles[$key] = $article;
- }
- return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrArticles);
- }
- }
|