Skip to content

Instantly share code, notes, and snippets.

View hasokeric's full-sized avatar
👋

Haso Keric hasokeric

👋
View GitHub Profile
@hasokeric
hasokeric / example.epicor.ts
Created January 27, 2023 20:39
Epicor type safety with OpenAPI
import { Component, ViewEncapsulation } from '@angular/core';
import {
ApiModule,
CustomMethodsService,
ChangeJobAsmblPartNumInput,
ErpTablesetsJobAsmblRow,
ChangeEquipIDInput,
ErpTablesetsJobEntryTableset,
ErpTablesetsJobHeadRow,
} from 'app/modules/openapi';
@hasokeric
hasokeric / nx-structure-angular-nestjs.md
Created January 21, 2023 23:33 — forked from trungvose/nx-structure-angular-nestjs.md
Nx workspace structure for NestJS and Angular

Nx

https://nx.dev/

Nx is a suite of powerful, extensible dev tools to help you architect, test, and build at any scale — integrating seamlessly with modern technologies and libraries while providing a robust CLI, caching, dependency management, and more.

It has first-class support for many frontend and backend technologies, so its documentation comes in multiple flavours.

Principles

@hasokeric
hasokeric / Epicor Classic Vs Kinetic.md
Created January 12, 2023 22:28
Epicor Classic vs Epicor Kinetic

Epicor ERP Classic and Epicor ERP Kinetic are two different user interfaces for the same ERP system. Both have their own unique features and capabilities, and the choice between them will depend on the specific needs of your organization.

Pros of Epicor ERP Classic:

Familiarity: Epicor ERP Classic is the traditional user interface for the Epicor ERP system, and many users are already familiar with its layout and functionality. Customization: Classic UI can be customized to a greater extent than Kinetic UI. Third-party Add-ons: Many third-party add-ons and integrations have been developed for the Classic UI and are readily available. Cons of Epicor ERP Classic:

Limited scalability: The Classic UI may not be able to handle the requirements of larger organizations or those with more complex needs.

@hasokeric
hasokeric / StoreAppStateInURL.md
Last active January 9, 2023 21:39
Store Entire Application State in URL after #

I decied to encode the entire application state as a Base64 encoded string in the hashmark of the url. For example, a url would look like (note its truncated since they are very long):

knotend.com/g/a#N4IgzgpgTglghgGxgLwnARgiAxA9lAWxAC5QA7X...

Everything after the /g/a# is a stringified version of a json object that contains all the information about the flowchart. It gets stringified, then compressed, then Base64 encoded. I update the url on every graph edit, so copying the graph state is as simple as copying the url in your browser bar.

Here's the pseudo code for creating the url, and then later reading it:

const stateString = JSON.stringify(appState); // appState is a json object
@hasokeric
hasokeric / EpicorUDMap.md
Last active October 13, 2022 13:23
If you are using UD Column Map Maintenance, here is some more information on each mappings Functional Process.
Map ID Source Target Valid Functional Process
1 JobPart ECOCoPart Yes EWB - Get Details from a Job Template
2 PartCoPart ECOCoPart Yes EWB - Updating a revision, Get Details from a Method
3 QuoteCoPart ECOCoPart Yes EWB - Get Details from a Quote Template
4 JobAsmbl ECOMtl Yes EWB - Get Details from a Job Template
5 JobMtl ECOMtl Yes EWB - Get Details from a Job Template
@hasokeric
hasokeric / BAQDataViewWithParams.cs
Created September 28, 2022 13:27
Example BAQDataView with Params
// **************************************************
// Custom code for RcptToInvForm
// Created: 7/21/2022 2:05:06 PM
//
// **************************************************
extern alias Erp_Contracts_BO_ReceiptsFromMfg;
extern alias Erp_Contracts_BO_PkgControlIDMaint;
extern alias Erp_Contracts_BO_Part;
extern alias Erp_Contracts_BO_Warehse;
@hasokeric
hasokeric / 55-bytes-of-css.md
Created September 26, 2022 12:25 — forked from JoeyBurzynski/55-bytes-of-css.md
58 bytes of css to look great nearly everywhere

58 bytes of CSS to look great nearly everywhere

When making this website, i wanted a simple, reasonable way to make it look good on most displays. Not counting any minimization techniques, the following 58 bytes worked well for me:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE scan [<!ENTITY test SYSTEM "http://google.com/">]>
<scan>&test;</scan>
@hasokeric
hasokeric / DeserializePOSTBPM.cs
Last active March 1, 2022 19:07
Me tinkering with Deserializing JSON in Post BPM
using System;
using System.Data;
using System.Linq;
using System.Data.DataSetExtensions;
// use dtJson instead of dynJson
public class Program
{
public static void Main()
@hasokeric
hasokeric / VinValidatorBPMs.cs
Created January 25, 2022 11:05
Epicor VIN Validation Automotive
// Erp.SerialNo.Update.PRE.ValidateVIN
//
// IsVehicleRefCat? Custom Condition
foreach (var ttSerialRow in ttSerialNo.Where(x => x.Added()))
{
bool isVehiclePart =
(from p in Db.Part.With(LockHint.NoLock)
where p.Company == ttSerialRow.Company
&& p.PartNum == ttSerialRow.PartNum